1.1Hiện Trạng: CCNA Security là bước đầu tiên ở cấp độ cơ bản trong lĩnh vực bảo mật của Cisco. CCNA Security cung cấp cho bạn kiến thức và kỹ năng cần thiết để phát triển một hệ thống hạ tầng an ninh, dự báo và phát hiện các lỗ hổng của hệ thống, giảm thiểu các mối đe dọa từ bên ngoài đối với hệ thống. 1.2Yêu Cầu: Tìm hiểu về các kỹ thuật mã hóa, cấu hình Password trên Router Cisco để nâng cao tính bảo mật của hệ thống mạng. Bên cạnh đó, cấu hình Access-List (Danh Sách Truy Cập), tìm hiểu toàn bộ khía cạnh bảo mật của Router thông qua chương trình học CCNA Security. Liên hệ: zthanhphatz95@gmail.com để lấy video vì video khá nặng
Trang 1ĐỒ ÁN CHUYÊN NGÀNH MẠNG MÁY TÍNH
BẢO MẬT HỆ THỐNG MẠNG SỬ DỤNG
ROUTER CISCO
GVHD: Ths NGUYỄN QUANG ANH
Trang 2Tháng 04 – Năm 2016
Trang 3MỤC LỤC
1 HIỆN TRẠNG VÀ YÊU CẦU: 3
1.1 Hiện Trạng: 3
1.2 Yêu Cầu: 3
2 KỸ THUẬT MÃ HÓA, CẤU HÌNH PASSWORD TRÊN ROUTER CISCO: 3
2.1 Mật Khẩu Console: 3
2.2 Mật Khẩu Telnet: 4
2.3 Mật Khẩu Chế Độ Enable: 5
2.4 Câu lệnh để mã hóa toàn bộ password được đặt: 5
2.5 Show kiểm tra kết quả: 5
2.6 Cấu Hình Passwords: 6
2.7 Mã Hóa Password: 7
3 ACCESS CONTROL LIST: 7
3.1 Standard Access List: 10
3.2 Extended Access List: 22
3.3 Reflexive Access List: 38
3.4 Dynamic Access List: 51
3.5 Time Based Access List: 61
4 MỘT SỐ PHƯƠNG PHÁP KHÁC BẢO VỆ ROUTER CISCO: 73
5 THỰC HIỆN BẢO MẬT MẠNG SỬ DỤNG ROUTER CISCO: 73
5.1 Kỹ Thuật Mã Hóa, Cấu Hình Password Trên Router Cisco: 73
5.2 Cấu Hình Access-List (Danh Sách Truy Cập): 75
6 TỔNG KẾT: 86
6.1 Kết Quả Đạt Được: 86
6.2 Đánh Giá Ưu, Khuyết Điểm: 86
6.2.1 Ưu Điểm: 86
6.2.2 Khuyết Điểm: 86
6.3 Hướng Phát Triển Tương Lai: 86
Trang 41 HIỆN TRẠNG VÀ YÊU CẦU:
1.1 Hiện Trạng:
CCNA Security là bước đầu tiên ở cấp độ cơ bản trong lĩnh vực bảo mật của Cisco.CCNA Security cung cấp cho bạn kiến thức và kỹ năng cần thiết để phát triển một hệthống hạ tầng an ninh, dự báo và phát hiện các lỗ hổng của hệ thống, giảm thiểu các mối
đe dọa từ bên ngoài đối với hệ thống
1.2 Yêu Cầu:
Tìm hiểu về các kỹ thuật mã hóa, cấu hình Password trên Router Cisco để nâng cao tínhbảo mật của hệ thống mạng Bên cạnh đó, cấu hình Access-List (Danh Sách Truy Cập),tìm hiểu toàn bộ khía cạnh bảo mật của Router thông qua chương trình học CCNASecurity
2 KỸ THUẬT MÃ HÓA, CẤU HÌNH PASSWORD TRÊN ROUTER
CISCO:
2.1 Mật Khẩu Console:
Hình 1
Cổng Console dùng trong trường hợp
– Cấu hình lần đầu tiên
– Recovery mật khẩu
– Cài đặt, nâng cấp IOS
Trang 5Đặt mật khẩu truy cập cho cổng Console trên Router nhằm giới hạn người dùng truyxuất Router/switch qua cổng này.
Sau khi reload lại router thì IOS yêu cầu nhập mật khẩu vừa đặt
Press RETURN to get started
User Access Verification
Password: bạn nhập mật khẩu vừa đặt (Chú ý là mật khẩu không hiển thị gì trên giaodiện cả)
Router#
2.2 Mật Khẩu Telnet:
Dùng để bảo mật cho đăng nhập từ xa vào Router
Ví dụ như mô hình, bạn ngồi từ PC06 vẫn có thể telnet đến Router/switch và làm việcqua giao diện dòng lệnh (có thể mạng LAN hoặc là mạng Internet, miễn là bạn có thểliên lạc được với Router)
Bạn có thể tham khảo bài viết Cấu hình Telnet trên Switch cisco
Hình 2
Router#configure terminal
Trang 6Router#configure terminal
Enter configuration commands, one per line End with CNTL/Z
Router(config)#enable password matkhauenable Dạng Password không được mã hóa.
Router(config)#enable secret matkhausecret Dạng Password được mã hóa
Router(config)#end
%SYS-5-CONFIG_I: configured from console by console
Router#exit
Router con0 is now available
Press RETURN to get started
User Access Verification
Password: “Nếu đặt cùng lúc password ở trên thì password matkhausecret sẽ đăng nhập
được vào hệ thống vì được ưu tiên”
2.4 Câu lệnh để mã hóa toàn bộ password được đặt:
Router#
Router#configure terminal
Enter configuration commands, one per line End with CNTL/Z
Router(config)#service password-encryption ← Dùng mã hóa toàn bộ các loại
password
2.5 Show kiểm tra kết quả:
Router#Show running-config
Trang 7Building configuration…
Current configuration: 636 bytes
Version 12.4
No service timestamps log datetime msec
No service timestamps debug datetime msec
Service password-encryption
Hostname Router
Enable secret 5 $1$mERr$HilBmDz/DgPOrtK1yYqKJ0
Enable password 7 083243400E0F10101B0A1C05393833272131
Trang 8router bằng port console.
Router(config)# line vty 0
4Router(config-line)# password
telnetRouter(config-line)#login
Vào chế độ line vty để cho phép telnetCấu hình password để cho phép telnetCho phép kiểm tra password khi người dùng telnet vào router
Router(config)# line aux
0Router(config-line)# password
backdoorRouter(config-line)# login
Vào chế độ line auxiliaryCấu hình password cho line auxCho phép router kiểm tra password khi người dùng login vào router thông quaport AUX
*Chú ý: enable secret password là loại password sẽ được mã hóa theo mặcđịnh Enable password sẽ không được mã hóa Với lý do đó, Cisco khuyến khích cácbạn không nên sử dụng password enable để cấu hình Sử dụng duy nhất câu lệnh enablesecret password trong router hoặc switch để cấu hình
Router(config)# enable password cisco Cấu hình enable password là cisco
Router(config)# line console
3 ACCESS CONTROL LIST:
Access Control List, thường được gọi tắt là Access – list, một công cụ được sử dụng rấtrộng rãi của Cisco IOS
Access control list (ACL), đúng như tên gọi của nó, là một danh sách điều khiển truynhập Nếu không được sử dụng kèm với các thực thể khác, access – list sẽ không có một
Trang 9vai trò gì cả Vì vậy, khi khai báo một access – list, access – list này phải được áp vàomột thực thể nào đó thì mới phát huy tác dụng Ta cùng điểm qua một số đặc điểm củaaccess – list.
Công dụng của access – list:
Access – list thường được sử dụng cho hai mục đích:
Lọc lưu lượng (traffic filtering):
Điều này được thực hiện bằng cách áp access – list lên một cổng của router theochiều in hoặc chiều out Nếu đặt theo chiều in, ACL sẽ thực hiện lọc lưu lượng đivào cổng, và nếu đặt theo chiều out, ACL sẽ lọc lưu lượng đi ra khỏi cổng Việc lọc bỏhay cho qua lưu lượng trên một access – list sẽ được căn cứ vào các từkhóa permit hoặc deny trên từng dòng của access – list ấy
Phân loại dữ liệu (data classification):
Trong trường hợp này, ACL được sử dụng để phân loại dữ liệu ACL sẽ được cấu hình
để chỉ ra những đối tượng nào được tham gia và những đối tượng nào không được thamgia vào một tiến trình hay một hoạt động nào đấy của router (ví dụ: distribute – list,NAT, VPN,…)
Các loại access – list:
Có hai loại access – list chính: Standard ACL và Extended ACL
Các loại khác:
Bên cạnh hai loại ACL chính nói đã đến ở trên, còn nhiều loại ACL khác có thể được sửdụng trong nhiều tình huống khác nhau như: Reflexive ACL, Dynamic ACL, Timedbased ACL,…
Chúng ta sẽ cùng nhau khảo sát từng loại ACL này thông qua các ví dụ cấu hình
Nguyên tắc hoạt động của Access list
Access – list là một danh sách gồm nhiều dòng Khi được truy xuất, ACL sẽ được đọc
và thi hành từng dòng một từ trên xuống dưới, dòng nào chứa thông tin khớp với thôngtin của gói tin đang được xem xét, dòng ấy sẽ được thi hành ngay và các dòng còn lại sẽđược bỏ qua
Một nguyên tắc nữa cần lưu ý là các dòng mới được khai báo sẽ được tự động thêm vàocuối ACL, tuy nhiên dòng cuối cùng thực sự của một ACL luôn là một dòng ngầm định
Trang 10“deny” tất cả, có nghĩa là nếu gói tin không match bất cứ dòng nào đã khai báo củaACL, nó sẽ bị deny.
Numbered ACL và Named ACL
Một ACL có thể được định danh bởi số hiệu (Numbered ACL) hoặc một chuỗi ký tự(Named ACL) Numbered ACL và Named ACL có nguyên tắc hoạt động cũng như cách
sử dụng hoàn toàn giống nhau Điểm khác biệt giữa hai loại ACL này là Named ACLcho phép chèn, sửa, xóa từng dòng còn Numbered ACL không cho phép chèn, sửa, xóatrên từng dòng mà phải viết lại toàn bộ ACL nếu có sai sót
Với Numbered ACL, các standard ACL sẽ lấy số hiệu từ 1 đến 99 hoặc 1300 đến 1999,các extended ACL sẽ lấy số hiệu từ 100 đến 199 hoặc 2000 đến 2699
Như thường lệ, để nắm được các ý tưởng, chúng ta cùng khảo sát các bài lab ví dụ:
Sơ đồ:
Hình 3 – Sơ đồ bài lab ví dụ.
Mô tả:
Trên sơ đồ hình 3 là một phần của một mạng doanh nghiệp Phần này gồm hai router R1
và R2 đại diện cho hai chi nhánh của doanh nghiệp R1 và R2 được đấu nối với nhaubằng một đường leased – line qua các cổng S0/0/0 của hai router R1 kết nối vào haiVLAN 10 và 110 của chi nhánh 1 với quy hoạch IP được chỉ ra như hình 3 cho cácVLAN R2 sử dụng cổng F0/0 đấu nối xuống VLAN 20 của chi nhánh 2 và cổng F0/1đấu nối với phần còn lại của mạng doanh nghiệp
Trang 113.1 Standard Access List:
Chúng ta sẽ sử dụng phân khúc mạng Hình 3 để khảo sát cách thức cấu hình và hoạt
động của Access – list và sử dụng Standard ACL
Đầu tiên các chi nhánh của công ty phải chạy một hình thức định tuyến nào đó đảm bảomọi địa chỉ thấy nhau Giả sử công ty sử dụng giao thức định tuyến EIGRP trên toàn bộ
hệ thống mạng, chúng ta thực hiện cấu hình đặt địa chỉ IP trên các cổng và chạy địnhtuyến EIGRP trên R1 và R2:
Routing entry for 192.168.20.0/24
Known via "eigrp 100", distance 90, metric 2172416, type internal
Trang 12Redistributing via eigrp 100
Last update from 192.168.12.2 on Serial0/0/0, 00:08:38 ago
Routing Descriptor Blocks:
* 192.168.12.2, from 192.168.12.2, 00:08:38 ago, via Serial0/0/0
Route metric is 2172416, traffic share count is 1
Total delay is 20100 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
R2#sh ip route 192.168.10.0
Routing entry for 192.168.10.0/24
Known via "eigrp 100", distance 90, metric 2172416, type internal
Redistributing via eigrp 100
Last update from 192.168.12.1 on Serial0/0/0, 00:09:31 ago
Routing Descriptor Blocks:
* 192.168.12.1, from 192.168.12.1, 00:09:31 ago, via Serial0/0/0
Route metric is 2172416, traffic share count is 1
Total delay is 20100 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
R2#sh ip route 192.168.110.0
Routing entry for 192.168.110.0/24
Known via "eigrp 100", distance 90, metric 2172416, type internal
Redistributing via eigrp 100
Last update from 192.168.12.1 on Serial0/0/0, 00:00:41 ago
Routing Descriptor Blocks:
* 192.168.12.1, from 192.168.12.1, 00:00:41 ago, via Serial0/0/0
Route metric is 2172416, traffic share count is 1
Trang 13Total delay is 20100 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
Các subnet đã đi được đến nhau:
R1#ping 192.168.20.1 source 192.168.10.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
R1#ping 192.168.20.1 source 192.168.110.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.110.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
Sau khi tất cả các subnet đã đi tới nhau thông suốt, chúng ta thực hiện áp các access –list lên các cổng để khảo sát chức năng lọc lưu lượng của chúng Điều này phù hợp vớiquy trình chung, ta chỉ áp các chính sách chặn hoặc lọc lên các dòng lưu lượng sau khi
đã được đảm bảo rằng routing và switching đã thông suốt hoàn toàn Như đã nói ở trên,
trong ví dụ này, chúng ta sẽ khảo sát cách thức sử dụng Standard Access List.
Đầu tiên, ta thử viết một access – list chỉ cho phép VLAN 10 của chi nhánh R1 đượctruy nhập đến VLAN 20 của chi nhánh R2
VLAN 10 sử dụng subnet 192.168.10.0/24 nên ta viết một access – list chỉ permit subnet
này, access – list chúng ta thực hiện như sau:
Access - list 1 permit 192.168.10.0 0.0.0.255
Ta cùng phân tích một số ý:
Trang 14 Vì chúng ta sử dụng access – list dạng standard và là dạng đánh số để đặt tên nên
số hiệu access – list sẽ chạy từ 1 đến 99 hoặc 1300 đến 1999 Ở đây, ta dùng sốhiệu là 1 Standard ACL chỉ xét đến source IP của gói tin
Cú pháp để xét một dải IP của access – list là sử dụng wildcard mask để lấy ra các
IP mong muốn Về định nghĩa, wildcard – mask là một dải nhị phân dài 32 bitđược sử dụng kèm với một IP tham chiếu để lọc ra các địa chỉ IP cần dùng theonguyên tắc: bit nào của địa chỉ IP tham chiếu tương ứng với bit 0 của wildcard –mask thì được giữ cố định, bit nào của IP tham chiếu tương ứng với bit 1 củawildcard – mask thì được tự do thay đổi giá trị
Để đơn giản cho việc xác định wildcard – mask, ta có thể sử dụng một cách tínhnhanh wild – card mask Ví dụ, với trường hợp ở trên, ta thấy mạng
Trang 15192.168.10.0/24 có subnet – mask là 255.255.255.0, wildcard – mask được xácđịnh bằng cách lấy giá trị “255.255.255.255” trừ đi subnet – mask:
255.255.255.255
- 255.255.255.0
============
0.0.0.255
Sau khi xác định xong wildcard – mask, ta lấy IP tham chiếu là một địa chỉ IP bất
kỳ nằm trong dải IP 192.168.10.0/24 là hoàn tất công việc Để đơn giản, ta có thểlấy luôn địa chỉ 192.168.10.0 làm IP tham chiếu Ta có kết quả:
192.168.10.0
0.0.0.255
Như đã trình bày trong phần đặc điểm tổng quan ở trên, access – list viết ra chỉ làmột danh sách đơn thuần Trong ví dụ này, đó là một danh sách chỉ có một dòng
“permit” các gói tin IP có source IP thuộc về mạng 192.168.10.0/24 Để có thể
thực hiện được ý đồ của yêu cầu đặt ra là chỉ cho phép subnet 192.168.10.0/24, taphải đặt access – list này vào một cổng nào đó của hệ thống Quan sát hình 3, tathấy có nhiều vị trí để có thể đặt “trạm kiểm soát” này như: cổng S0/0/0 của R1 –theo chiều out, cổng S0/0/0 của R2 – theo chiều in và cổng F0/0 của R2 – theochiều out Tuy nhiên, vị trí thích hợp nhất để đặt ACL đã tạo là cổng F0/0 của R2theo chiều out vì nếu ta đặt ở các vị trí khác, các lưu lượng khác xuất phát từVLAN 110 của R1 đi đến phần còn lại của mạng sẽ bị chặn luôn, trong khi ta chỉ
muốn chặn lưu lượng từ VLAN 110 đi đến VLAN 20 mà thôi Standard ACL nên
được đặt càng gần đích đến càng tốt Như vậy, ACL này sẽ được tạo ra trên R2
và được áp vào cổng F0/0 của R2 theo chiều out:
R2(config)#access-list 1 permit 192.168.10.0 0.0.0.255
R2(config)#interface f0/0
R2(config-if)#ip access-group 1 out
Trang 16Như ở trên ta thấy, câu lệnh áp một access – list lên một cổng là:
R(config-if)#ip access-group ACL_number {in | out}
Từ khóa “in” hoặc “out” sẽ chỉ ra ACL được áp lên cổng để kiểm soát dữ liệu đivào hay đi ra khỏi cổng Lưu ý rằng: trên một cổng, mỗi chiều chỉ được áp một vàchỉ một IP ACL
Ta thực hiện kiểm tra kết quả áp access – list vừa thực hiện:
Trên R2:
R2#show access-lists
Standard IP access list 1
10 permit 192.168.10.0, wildcard bits 0.0.0.255
R2#show ip interface f0/0 | include access list
Outgoing access list is 1
Inbound access list is not set
Trên R1, thực hiện ping kiểm tra đến một host thuộc VLAN 20 có địa chỉ là192.168.20.2 (host này không được thể hiện trên sơ đồ hình 3):
R1#ping 192.168.20.2 source 192.168.10.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/37/176 ms
R1#ping 192.168.20.2 source 192.168.110.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.110.1
U.U.U
Success rate is 0 percent (0/5)
Trang 17Từ kết quả kiểm tra ta thấy nếu lấy source IP là một địa chỉ thuộc dải IP của VLAN 10,kết quả ping thành công (được permit), còn nếu lấy source IP là một IP thuộc dải IP củaVLAN 110, kết quả ping không thành công (bị deny) Ta cũng thấy rằng trong access –list 1 không có một dòng tường minh nào cho hoạt động deny các gói đến từ VLAN 110.Hoạt động deny này được thực hiện bởi một dòng ngầm định “deny any” cho bất kỳ góitin nào không thỏa mãn các dòng khai báo tường minh đang có trong danh sách.
Trong trường hợp này, gói tin đến từ VLAN 110 với IP source thuộc subnet192.168.110.0/24 trước hết được tra cứu dòng “permit 192.168.10.0 0.0.0.255” Vìkhông match với dòng này, nó được chuyển qua tra cứu dòng tiếp theo là dòng ngầmđịnh “deny any” và bị drop bỏ
Tiếp theo, chúng ta cùng thử một số yêu cầu khác
Ta gỡ bỏ access – list vừa thực hiện trên R2:
R2(config-if)#ip access-group 2 out
Ta thực hiện kiểm tra từ R1:
R1#ping 192.168.20.2 source 192.168.10.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Trang 18Packet sent with a source address of 192.168.10.1
U.U.U
Success rate is 0 percent (0/5)
R1#ping 192.168.20.2 source 192.168.110.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.110.1
U.U.U
Success rate is 0 percent (0/5)
Kết quả ping không thành công cho thấy ACL đã chặn đúng theo yêu cầu: deny các góitin từ VLAN 10 đi đến VLAN 20 Tuy nhiên, ta thấy ngay cả VLAN 110 cũng bị chặnbởi ACL và điều này không đúng với yêu cầu “mọi lưu lượng khác vẫn phải được phéptruy nhập vào VLAN 20”
Ta kiểm tra lại ACL đã cấu hình:
R2#show access-lists
Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255 (8 matches)
Ta thấy rằng access – list này chỉ có một dòng “deny”, dòng này match cho các gói tinđến từ subnet 192.168.10.0/24 và thực hiện đúng chức năng deny của mình cho các góinày Tuy nhiên, khi một gói tin đến từ subnet của VLAN 110 là 192.168.110.0/24, nó sẽkhông match dòng “deny” tường minh này và sẽ được chuyển qua đối chiếu với dòngkết thúc ngầm định của ACL, và vì dòng ngầm định này “deny any” nên gói tin sẽ bịdrop Như vậy, không chỉ lưu lượng từ VLAN 10 mà mọi lưu lượng đều không thể điđến được VLAN 20 với cách viết ACL như ở trên
Để sửa lỗi, chúng ta phải bổ sung thêm một dòng “permit” tất cả các lưu lượng khácngay sau dòng “deny” tường minh 192.168.10.0/24 Dòng “permit” tất cả lưu lượng
Trang 19khác này, thực chất là một dòng “permit” tất cả mọi lưu lượng với source IP có thể lấygiá trị bất kỳ trên toàn không gian IPv4:
R2(config)#access-list 2 permit 0.0.0.0 255.255.255.255
Access – list 2 lúc này gồm các dòng như sau:
R2#show access-lists
Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255 (8 matches)
20 permit any
Ta thấy, dòng đầu tiên của ACL deny tường minh mạng 192.168.10.0/24 theo yêu cầu,dòng thứ hai cho qua tất cả mọi loại lưu lượng và rõ ràng sẽ cho qua các lưu lượngkhông thỏa dòng thứ nhất, trong đó có lưu lượng đến từ VLAN 110
Ta lưu ý cách viết IP tham chiếu và wildcard – mask để lấy toàn bộ không gian IPv4:
IP tham chiếu: 0.0.0.0
Wildcard – mask: 255.255.255.255
Với wildcard – mask “255.255.255.255”, 32 bit của IP tham chiếu chạy tự do, IP mà talấy sẽ đi trọn cả không gian IPv4 Ta có thể lấy IP tham chiếu là một địa chỉ bất kỳ,nhưng trong các cú pháp cấu hình, địa chỉ “0.0.0.0” thường được sử dụng
Trong cách khai báo các dòng của ACL, cụm “0.0.0.0 255.255.255.255” có thể đượcthay thế bằng từ khóa “any” cho gọn câu lệnh cấu hình:
R2(config)#access-list 2 permit any
Ta cùng nhau kiểm tra lại kết quả thực hiện:
R1#ping 192.168.20.2 source 192.168.10.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.1
U.U.U
Success rate is 0 percent (0/5)
Trang 20R1#ping 192.168.20.2 source 192.168.110.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.110.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
Ta thấy kết quả kiểm tra đã đúng như yêu cầu Ta xem xét thêm trên R2:
R2#show access-lists
Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255 (16 matches)
20 permit any (5 matches)
Ta thấy dòng “permit any” đã xuất hiện “matches”, cho thấy nó đã được tra cứu để thựchiện cho qua các gói tin xuất phát từ VLAN 110
Cuối cùng, ta thực hiện thêm một yêu cầu nữa:
Tạo một interface loopback trên R1 với địa chỉ 192.168.1.1/24 giả lập một mạngLAN với subnet 192.168.1.0/24
Chặn không để cho “mạng LAN” mới tạo này được phép truy nhập vào VLAN 20của R2
Như được yêu cầu, trước hết ta tạo thêm loopback trên R1:
Trang 21Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/75/132 ms
Access – list đã bổ sung thêm entry cấm nhưng việc ngăn chặn vẫn không thành công!Chúng ta cùng kiểm tra lại access – list 2 trên R2:
R2#show access-lists
Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255 (16 matches)
20 permit any (10 matches)
30 deny 192.168.1.0, wildcard bits 0.0.0.255
Từ kết quả show ta thấy dòng vừa tạo được xếp vào sau cùng và đứng sau dòng “permitany”, do đó sẽ không bao giờ được tra cứu vì dòng “permit any” đã được tra cứu trước
và luôn match với mọi gói tin trong đó có cả gói đáng lẽ bị cấm Ta nhắc lại một ý tronghoạt động của access – list: dòng được khai báo sau luôn được xếp vào sau cùng củadanh sách và cách thức tra cứu ACL là luôn tra cứu từ trên xuống, match dòng nào thihành ngay dòng đó Vì tính chất này, chúng ta phải luôn rất cẩn thận khi khai báo cácdòng trong ACL vì nếu không, các chính sách lọc gói có thể không hoạt động theo đúng
ý muốn của chúng ta
Để sửa lỗi này, chúng ta phải xóa bỏ access – list 2 rồi viết lại theo đúng thứ tự vì tađang sử dụng Numbered ACL – là loại ACL không cho phép sửa, xóa trên từng dòng.R2(config)#no access-list 2
Trang 22Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255
20 deny 192.168.1.0, wildcard bits 0.0.0.255
30 permit any
Các dòng đã được xếp lại đúng thứ tự cần thiết Ta kiểm tra lại từ R1:
R1#ping 192.168.20.2 source 192.168.1.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.1.1
U.U.U
Success rate is 0 percent (0/5)
R1#ping 192.168.20.2 source 192.168.10.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.1
U.U.U
Success rate is 0 percent (0/5)
R1#ping 192.168.20.2 source 192.168.110.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.110.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 44/60/96 ms
Kết quả hoạt động đã đúng như chúng ta mong đợi
Để sửa lỗi ở trên, ta cũng có thể sử dụng cú pháp của Named ACL Named ACL chophép chúng ta sửa xóa từng dòng Trong kết quả show của access – list bị lỗi ở trên, tathấy dòng cuối cùng có số thứ tự là 30:
Trang 23R2#show access-lists
Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255
20 permit any
30 deny 192.168.1.0, wildcard bits 0.0.0.255
Mặc định, mỗi dòng trong một access – list đều có một số thứ tự, bắt đầu từ 10 và mỗidòng mới được bổ sung sẽ có số thứ tự được cộng thêm 10 vào số thứ tự trước đó Tacần đổi lại số thứ tự của dòng mới này thành 15 chẳng hạn, nằm giữa 10 và 20 để dòngmới này được đưa lên trước dòng “permit any”
R2(config)#ip access-list standard 2
R2(config-std-nacl)#no 30
R2(config-std-nacl)#15 deny 192.168.1.0 0.0.0.255
R2(config-std-nacl)#end
R2#sh access-lists 2
Standard IP access list 2
10 deny 192.168.10.0, wildcard bits 0.0.0.255
15 deny 192.168.1.0, wildcard bits 0.0.0.255
20 permit any
Ta thấy thứ tự của các dòng trong danh sách đã được chỉnh sửa lại đúng đắn
3.2 Extended Access List:
Như đã trình bày, nếu như standard access – list chỉ đề cập đến source – IP của gói tin IPthì extended access – list có thể thực hiện lọc gói hoặc phân loại dữ liệu dựa trên rấtnhiều thông tin của gói tin như source IP, destination IP, source port, destination port (cảTCP và UDP), giao thức nền (TCP, UDP, ICMP,…) và một số thông số khác
Trang 24Extended access – list cung cấp một phương tiện rất hiệu quả trong việc thao tác cấuhình trên Cisco IOS và vì vậy được sử dụng rộng khắp trong các giải pháp mạng chạytrên nền tảng thiết bị của Cisco.
Để khảo sát hoạt động của extended access – list, như thường lệ, chúng ta xem xét một
ví dụ cấu hình
Sơ đồ:
Hình 4 – Sơ đồ bài lab ví dụ.
Mô tả:
Trên sơ đồ hình 4 là một phần của một mạng doanh nghiệp Phần này gồm hai router R1
và R2 đại diện cho hai chi nhánh của doanh nghiệp R1 và R2 được đấu nối với nhaubằng một đường leased – line qua các cổng S0/0/0 của hai router R1 kết nối vào VLAN
10 R2 sử dụng cổng F0/0 đấu nối xuống VLAN 20 và cổng F0/1 đấu nối với phần cònlại của mạng doanh nghiệp Quy hoạch IP cho các đấu nối và cho các VLAN được chỉ ranhư trên hình 4
Trên VLAN 10 của chi nhánh R1, ta thực hiện đặt một số server nội bộ gồm các serverFTP, HTTP và DNS Các server này chỉ dành cho các user thuộc VLAN 20 sử dụng.Chúng ta phải cấu hình access – list trên R1 để đảm bảo yêu cầu này
Yêu cầu:
Cấu hình R1 chỉ cho phép các user thuộc VLAN 20 truy nhập đến các server FTP,HTTP và DNS thuộc VLAN 10
FTP server của VLAN 10 chỉ sử dụng hình thức Active FTP
Cấu hình trên R1 phải cho phép cả DNS Zone – transfer với truy nhập DNS
Trang 25 Hệ thống mạng chạy định tuyến EIGRP Đảm bảo rằng cấu hình trên R1 khôngđược làm ảnh hưởng tới hoạt động định tuyến EIGRP trên R1 với phần còn lại củamạng.
Chặn tất cả mọi loại dữ liệu khác đi vào VLAN 10, tuy nhiên đảm bảo rằng cáchost thuộc VLAN 10 có thể thực hiện ping, traceroute và tìm kiếm giá trị PathMTU ra bên ngoài
Cấu hình đảm bảo các gói tin không được cho phép nếu cố tình đi vào VLAN 10
sẽ gây ra một cảnh báo SYSLOG
Thực hiện:
Cấu hình cơ bản trên các router:
Đầu tiên các chi nhánh của công ty phải chạy một hình thức định tuyến nào đó đảm bảomọi địa chỉ thấy nhau Giả sử công ty sử dụng giao thức định tuyến EIGRP trên toàn bộ
hệ thống mạng, chúng ta thực hiện cấu hình đặt địa chỉ IP trên các cổng và chạy địnhtuyến EIGRP trên R1 và R2:
Trang 26Routing entry for 192.168.20.0/24
Known via "eigrp 100", distance 90, metric 2172416, type internal
Redistributing via eigrp 100
Last update from 192.168.12.2 on Serial0/0/0, 00:08:38 ago
Routing Descriptor Blocks:
* 192.168.12.2, from 192.168.12.2, 00:08:38 ago, via Serial0/0/0
Route metric is 2172416, traffic share count is 1
Total delay is 20100 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
R2#sh ip route 192.168.10.0
Routing entry for 192.168.10.0/24
Known via "eigrp 100", distance 90, metric 2172416, type internal
Redistributing via eigrp 100
Trang 27Last update from 192.168.12.1 on Serial0/0/0, 00:09:31 ago
Routing Descriptor Blocks:
* 192.168.12.1, from 192.168.12.1, 00:09:31 ago, via Serial0/0/0
Route metric is 2172416, traffic share count is 1
Total delay is 20100 microseconds, minimum bandwidth is 1544 Kbit
Reliability 255/255, minimum MTU 1500 bytes
Loading 1/255, Hops 1
Các subnet đã đi được đến nhau:
R1#ping 192.168.20.1 source 192.168.10.1
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/2/4 ms
Cấu hình ACL trên router R1:
Đến đây, khi định tuyến đã hoàn tất và các subnet đã đi đến nhau được, chúng ta thựchiện triển khai access – list để đảm bảo yêu cầu đặt ra Vì yêu cầu có đề cập đến các giaothức, chúng ta phải sử dụng extended access – list ACL này sau khi khai báo xong sẽ
đặt trên cổng S0/0/0 của R1 theo chiều in để làm “trạm kiểm soát” cho mọi dữ liệu đi
Khác với bài viết trước, trong bài viết này, chúng ta sử dụng named access – list Cúpháp của named access – list bắt đầu bằng các từ khóa “ip access-list…”, sau đó chúng
Trang 28ta phải chỉ ra cụ thể đây là access – list dạng standard hay extended và khai báo tên củaaccess – list.
Dòng đầu tiên của ACL này chỉ rõ source IP được permit là toàn bộ mạng192.168.20.0/24 với Destination IP là toàn bộ mạng 192.168.10.0/24 Vì FTP là ứngdụng truyền file chạy trên nền TCP, nên trước khi khai báo các dải địa chỉ source vàdestination, chúng ta chỉ ra giao thức nền là “tcp”
Giao thức FTP sử dụng hai kết nối TCP cho hoạt đông của mình: một kết nối dùngcho quản lý và điều khiển (control connection) và một kết nối dùng cho truyền dữ liệu(data connection) Control connection luôn sử dụng port 21 cho phía server Dataconnection sử dụng port tùy thuộc vào hoạt động ở mode nào: Active hay Passive
· Ở Active mode: khi client yêu cầu trao đổi dữ liệu, đầu tiên, server sẽ hướng dẫn client
sử dụng một port ngẫu nhiên lớn hơn hoặc bằng 1024; tiếp theo server sẽ khởi tạo mộtkết nối đến client với source port là 20 Kết quả là client sẽ dùng port ngẫu nhiên lớnhơn hoặc bằng 1024 truyền thông với port 20 của server
· Ở passive mode: khi client muốn trao đổi dữ liệu, server mở port ngẫu nhiên lớn hơn
hoặc bằng 1024 và báo giá trị port này cho client Client cũng sẽ sử dụng port ngẫu
nhiên lớn hơn hoặc bằng 1024 để truyền thông với port ngẫu nhiên kia của server Với
passive mode, port 20 không được sử dụng.
Vì yêu cầu nói rằng server được cấu hình để sử dụng Active mode nên trong dòngpermit của ACL, ta đề cập đến các port 20 và 21 (“range 20 21”)
Truy nhập HTTP sử dụng TCP với port 80 nên ta có dòng access – list cho phép VLAN
20 truy nhập HTTP server tại VLAN 10 được cấu hình như sau:
R1(config-ext-nacl)#permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq 80Yêu cầu tiếp theo là chỉ cho các user thuộc VLAN 20 đi đến DNS – Server thuộc VLAN10
R1(config-ext-nacl)#permit udp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq 53R1(config-ext-nacl)#permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq 53
Trang 29Vì yêu cầu được đặt ra là phải cho phép cả zone – transfer nên ta phải permit luôn cảgiao thức nền là TCP Nhắc lại rằng DNS chạy trên nền UDP sử dụng Destination port
là 53 Riêng với hoạt động zone – transfer và với các gói DNS lớn hơn 512 byte, DNSchuyển qua sử dụng TCP với port 53
Hiện tại, router R1 đang thực hiện chạy định tuyến EIGRP với R2 Khi ta đặt một ACLdạng extended trên cổng của R1 đấu nối với R2, ta phải có dòng permit cho giao thứcEIGRP để R1 có thể chạy định tuyến bình thường với R2 Nếu không có dòng này, ACL
sẽ thực hiện drop bỏ các gói tin EIGRP, R1 sẽ không nhận được thông tin định tuyến từR2 và sẽ bị cô lập với phần còn lại của mạng EIGRP chạy trực tiếp trên nền IP, sử dụngprotocol – id là 88, nên ta có thể viết dòng “permit” cho EIGRP như sau:
R1(config-ext-nacl)#permit 88 any any
Yêu cầu tiếp theo là cho phép các host thuộc VLAN 10 được phép ping, traceroute vàthực hiện tiến trình tìm kiếm path – MTU ra bên ngoài
Ứng dụng ping chạy trên nền giao thức ICMP sử dụng hai loại gói tin là ICMP EchoRequest và ICMP Echo Reply Khi một host thực hiện ping đến một địa chỉ nào đó, nó
sẽ gửi đi gói tin Echo Request và nhận về gói Echo Reply từ địa chỉ được kiểm tra VìACL sẽ đặt trên cổng S0/0/0 của R1 theo chiều in nên ta chỉ cần permit các gói tin EchoReply trả về cho hoạt động Ping từ subnet 192.168.10.0/24 của VLAN 10:
R1(config-ext-nacl)#permit icmp any 192.168.10.0 0.0.0.255 echo-reply
Tiện ích Traceroute cho phép chúng ta xác định được lộ trình đường đi của một gói tinđến một địa chỉ xác định trước Có nhiều biến thể của traceroute được sử dụng bởi nhiều
hệ điều hành khác nhau Cisco IOS sử dụng một biến thể của UNIX Với biến thể này,
để trace đến một địa chỉ, client gửi đi các gói tin UDP đến địa chỉ này với giá trị TTLtăng dần từ 1 với destination port sử dụng các giá trị rất lớn (lớn hơn hoặc bằng 33434)
· Trên đường di chuyển, nếu TTL = 0, thiết bị nhận được gói tin sẽ gửi trả về cho thiết bịtrace một gói tin ICMP Time – Exceeded với source IP chính là IP của thiết bị gửi trả
về Host trace sẽ liệt kê địa chỉ này là địa chỉ của một trạm trên đường gói tin đi đến
Trang 30đích Tiếp theo, host trace sẽ tiếp tục gửi đi gói tin UDP đến địa chỉ đích muốn tracenhưng lần này TTL được tăng lên 1 đơn vị…Tiến trình cứ thế tiếp tục cho đến khi góitin UDP trace đi đến được đích.
· Tại đích đến, vì port được sử dụng trong gói UDP là port có giá trị rất lớn và không cótrong các ứng dụng đang được sử dụng, đích đến sẽ gửi trả về cho host trace một gói tinICMP Port Unreachable Tiến trình trace kết thúc
Như vậy, để traceroute hoạt động được, ACL phải cho qua hai loại gói tin trả về làICMP Time – Exceeded và ICMP Port Unreachable Ta thực hiện viết các dòng ACLnhư sau:
R1(config-ext-nacl)#permit icmp any 192.168.10.0 0.0.0.255 time-exceeded
R1(config-ext-nacl)#permit icmp any 192.168.10.0 0.0.0.255 port-unreachable
Hoạt động Path – MTU cho phép một host xác định được giá trị MTU nhỏ nhất trên lộtrình đi đến đích của gói tin để từ đó host sẽ thực hiện đóng gói tin với kích thước thíchhợp nhằm tránh việc gói tin bị phân mảnh trên đường đi
Path – MTU sử dụng cơ chế khá đơn giản là gửi đến đích các gói tin với kích thước tăngdần và bit DF (Don’t Fragment) trong IP Header được bật lên Khi kích thước này viphạm giá trị MTU của một interface nào đó trên lộ trình và gói không được phân mảnh,một gói tin ICMP Packet too big sẽ được trả về, host source sẽ thực hiện giảm kíchthước gói tin rồi gửi đi tiếp Hoạt động này cứ thế tiếp tục cho đến khi gói tin đi đến đích
và không còn bị báo “Packet too big” nữa
Như vậy để Path MTU hoạt động được, chúng ta phải cho qua các gói tin “Packet toobig” trong ACL:
R1(config-ext-nacl)#permit icmp any 192.168.10.0 0.0.0.255 packet-too-big
Yêu cầu cuối cùng được đặt ra là nếu các gói tin vi phạm đi vào cổng, router sẽ phát ramột thông điệp syslog cảnh báo
Ta thấy rằng ACL chúng ta viết từ đầu đến giờ chỉ toàn là các dòng permit Điều này cónghĩa là mọi gói tin không được liệt kê trong các dòng này sẽ bị deny bởi một dòng deny
Trang 31ngầm định đặt ở cuối ACL Tuy nhiên, ta muốn rằng khi thực hiện deny các gói tin viphạm, công việc không chỉ được tiến hành ngầm định mà còn phải phát ra thông báo log
để người quản trị được biết Để thực hiện được điều này, chúng ta sử dụng một dòngdeny tường minh có thêm tùy chọn “log”:
R1(config-ext-nacl)#deny ip any any log
Khi ta sử dụng tùy chọn “log” cho một dòng ACL, mỗi khi có một gói tin match vớidòng ACL này, một thông báo Syslog sẽ được phát ra để cảnh báo đến người quản trị.Đến đây, chúng ta đã thực hiện cấu hình xong ACL Tiếp theo, ta đặt ACL này vào cổngS0/0/0 của router R1 theo chiều in để kiểm soát dữ liệu đi vào VLAN 10:
R1(config)#interface s0/0/0
R1(config-if)#ip access-group VLAN10 in
Chúng ta cùng kiểm tra lại ACL vừa thực hiện:
R1#sh access-lists
Extended IP access list VLAN10
10 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 range ftp-data ftp
20 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq www
30 permit udp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq domain
40 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq domain
50 permit eigrp any any (39 matches)
60 permit icmp any 192.168.10.0 0.0.0.255 echo-reply
70 permit icmp any 192.168.10.0 0.0.0.255 port-unreachable
80 permit icmp any 192.168.10.0 0.0.0.255 packet-too-big
90 permit icmp any 192.168.10.0 0.0.0.255 time-exceeded
100 deny ip any any log
R1#show ip interface s0/0/0 | include access list
Outgoing access list is not set
Inbound access list is VLAN10
Trang 32Kiểm tra hoạt động của ACL:
Tiếp theo, chúng ta cùng thực hiện kiểm tra rằng các ACL này đã phát huy tác dụng Đểkiểm tra, chúng ta cần phải có một số server FTP, HTTP và DNS đặt tại VLAN 10 cũngnhư có các user thuộc VLAN 20 Vì đây là một bài lab Cisco, và để tiện cho việc thựctập cũng như cấu hình lab, chúng ta sẽ sử dụng một router giả lập làm các server và mộtrouter khác giả lập làm user của VLAN 20 để phục vụ cho việc test (Hình 5)
Hình 5 – Sơ đồ test cấu hình ACL.
Như ta thấy, trên hình 5, router R3 sẽ giả lập làm các server HTTP, DNS và FTP; routerR4 sẽ giả lập làm một user thuộc VLAN 20
Trên các router “server” R3 và “client” R4, ta thực hiện đặt địa chỉ IP như hình 5 và chỉcác default route về các gateway của VLAN 10 và VLAN 20 là R1 và R2:
Trang 33Do tồn tại nhiều lỗi về tính năng FTP server (ví dụ, bug với ID CSCse29244 gây ra crash
với IOS khi thực hiện truyền file từ IOS FTP Server), Cisco đã gỡ bỏ tính năng FTPserver khỏi các IOS mới hiện nay và cam kết rằng sẽ khắc phục trong thời gian tới Vìvậy, chúng ta không thể kiểm tra một cách đầy đủ tính năng FTP Server trên routerCisco nhưng có thể sử dụng tính năng này để kiểm tra được hoạt động của ACL có choqua port control của FTP hay không
Để kiểm tra một ứng dụng chạy trên nền TCP của một host có chạy hay không, ta có thể
sử dụng một thủ thuật là telnet đến host đó nhưng bằng port của ứng dụng muốn kiểmtra Nếu kết quả là “Open”, ứng dụng có hoạt động và truy nhập đến được, nếu kết quả
là “Destination unreachable; gateway or host down”, ứng dụng không hoạt động hoặckhông truy nhập đến được
Ví dụ: Để kiểm tra xem HTTP Server trên host 1.1.1.1 có hoạt động và có truy nhập
được đến không, ta thực hiện lệnh
% Destination unreachable; gateway or host down
Ta thấy, kết quả không thành công
Quan sát trên R1, ta thấy có hiển thị một thông điệp syslog:
Trang 34Ta thực hiện truy nhập tương tự từ “user” R4 của VLAN 20:
R4#telnet 192.168.10.2 80
Trying 192.168.10.2, 80 Open
(Nhấn “Ctrl+Shift+6” rồi nhấn “X” để trở lại dấu nhắc hệ thống của R4)
R4#disconnect 1 <- Giải phóng kết nối vừa thực hiện
Closing connection to 192.168.10.2 [confirm]
Extended IP access list VLAN10
10 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 range ftp-data ftp
Trang 3560 permit icmp any 192.168.10.0 0.0.0.255 echo-reply
70 permit icmp any 192.168.10.0 0.0.0.255 port-unreachable
80 permit icmp any 192.168.10.0 0.0.0.255 packet-too-big
90 permit icmp any 192.168.10.0 0.0.0.255 time-exceeded
100 deny ip any any log (1 match)
Kết quả này phản ánh hoạt động của ACL với truy nhập HTTP diễn ra đúng như chúng
Translating "R3" domain server (192.168.10.2)
% Unrecognized host or address, or protocol not running
Câu lệnh “ip domain-lookup” dùng để bật chế độ phân giải tên miền trên R2 và câu lệnh
“ip name-server” dùng để khai báo DNS – Server cho R2 Ta thấy, R2 đã gửi DNSQuery đến cho DNS Server tại R3 nhưng hoạt động phân giải không thành công
Ta kiểm tra trên R1:
R1#
*Mar 1 00:23:24.915: %SEC-6-IPACCESSLOGP: list VLAN10 deniedudp192.168.12.2(55367) -> 192.168.10.2(53), 1 packet
R1#
Thông báo syslog trên R1 chỉ ra rằng gói DNS vừa rồi từ R2 đã bị ACL deny
Ta thực hiện tương tự trên R4 – là một user hợp lệ:
R4(config)#ip domain-lookup
R4(config)#ip name-server 192.168.10.2
Trang 36R4#ping R3
Translating "R3" domain server (192.168.10.2) [OK]
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
Ta thấy, lần này kết quả phân giải thành công, các gói tin ICMP echo được gửi đến địachỉ được phân giải là 192.168.10.2 Tất nhiên, kết quả ping không thành công vì ACLvừa thực hiện đã chặn mọi gói in echo request đi đến VLAN 10 Tuy nhiên, điều chúng
ta muốn kiểm tra là truy vấn DNS từ R4 phải thành công đã được xác nhận
Ta kiểm tra hoạt động match của ACL trên R1:
R1#show access-lists | include domain
30 permit udp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq domain (1 match)
40 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq domain
Ta tiếp tục tương tự với FTP:
Thực hiện từ R2, với source 192.168.12.2, kết quả không thành công:
R2#telnet 192.168.10.2 21
Trying 192.168.10.2, 21
% Destination unreachable; gateway or host down
Thực hiện từ R4, kết quả thành công:
R4#telnet 192.168.10.2 21
Trying 192.168.10.2, 21 Open
220 R3 IOS-FTP server (version 1.00) ready
“Ctrl+Shift+6” rồi nhấn “X” tại đây
R4#disconnect 1
Closing connection to 192.168.10.2 [confirm]
Trang 37Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.10.2, timeout is 2 seconds:
U.U.U
Success rate is 0 percent (0/5)
Từ VLAN 10 vẫn ping được ra bên ngoài:
R3#ping 192.168.20.2
Type escape sequence to abort
Sending 5, 100-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 76/104/136 ms
Từ bên ngoài không trace được vào VLAN 10:
R4#traceroute 192.168.10.2
Type escape sequence to abort
Tracing the route to R3 (192.168.10.2)
1 192.168.20.1 44 msec 8 msec 28 msec
2 192.168.12.1 !A * !A
Từ VLAN 10 vẫn trace được ra bên ngoài:
R3#traceroute 192.168.20.2
Type escape sequence to abort
Tracing the route to 192.168.20.2
Trang 381 192.168.10.1 52 msec 44 msec 28 msec
2 192.168.12.2 72 msec 104 msec 112 msec
3 192.168.20.2 92 msec * 80 msec
Ta có thể kiểm tra xem ACL có cho qua gói packet – too – big hay không bằng cách sửdụng lệnh ping mở rộng trên R3 với kích thước gói tin là 1500 byte và bật bit DF, đồngthời chỉnh lại MTU của cổng đấu nối xuống VLAN 20 của R2 thành 1492 byte
Set DF bit in IP header? [no]: y
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort
Sending 5, 1500-byte ICMP Echos to 192.168.20.2, timeout is 2 seconds:
Packet sent with a source address of 192.168.10.2
Packet sent with the DF bit set
M.M.M
Trang 39Success rate is 0 percent (0/5)
Ta quan sát hoạt động match trên ACL của R1 để thấy rằng các gói packet – too – big đãđược cho qua:
R1#show access-lists
Extended IP access list VLAN10
10 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 range ftp-data ftp (18matches)
20 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq www (6 matches)
30 permit udp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq domain (4 matches)
40 permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq domain
50 permit eigrp any any (2425 matches)
60 permit icmp any 192.168.10.0 0.0.0.255 echo-reply (5 matches)
70 permit icmp any 192.168.10.0 0.0.0.255 port-unreachable (2 matches)
80 permit icmp any 192.168.10.0 0.0.0.255 packet-too-big (3 matches)
90 permit icmp any 192.168.10.0 0.0.0.255 time-exceeded (3 matches)
100 deny ip any any log (16 matches)
Như vậy, phần kiểm tra vừa thực hiện cho thấy ACL được cấu hình đã hoạt động đúngtheo yêu cầu đặt ra
Trên đây chúng ta đã cùng nhau khảo sát hoạt động của Extended ACL Như chúng ta
đã thấy, mấu chốt của việc sử dụng Extended ACL là chúng ta cần nắm vững cách thức làm việc của các giao thức, các ứng dụng để từ đó viết và áp dụng ACL cho thật phù hợp
3.3 Reflexive Access List:
Ở trên, chúng ta đã cùng nhau khảo sát hai loại Access – list cơ bản là Standard ACL vàExtended ACL Đây là hai loại ACL được sử dụng rất nhiều trên các thiết bị mạng củaCisco chạy Cisco IOS
Bên cạnh hai loại cơ bản trên, Cisco IOS còn tích hợp nhiều loại ACL khác với nhữngcông dụng rất đặc biệt:
Trang 40 Reflexive ACL: hoạt động giống như một dạng tường lửa (firewall) đơn giản.
Reflexive ACL kiểm soát lưu lượng theo nguyên tắc chỉ cho phép lưu lượng từbên ngoài mạng đi vào bên trong mạng nếu như lưu lượng đó là lưu lượng trả vềcho một luồng lưu lượng xuất phát từ bên trong mạng đi ra ngoài trước đó
Dynamic ACL: cung cấp một cơ chế xác thực để cho phép tiến hành một loại hình
trao đổi dữ liệu nào đó Một host muốn thực hiện một session trao đổi dữ liệu (vídụ: mở một kết nối Web – HTTP), host này phải tiến hành xác thực bằng cách gửimột cặp username/password đến router có cấu hình dynamic ACL Nếu xác thực
thành công, Dynamic ACL này sẽ tự động tạo một dòng (entry) permit session
này và như vậy dữ liệu của session có thể đi qua; ngược lại, nếu xác thực không
thành công, dòng permit không được tạo ra, session sẽ bị cấm.
Timed based ACL: cung cấp một cơ chế cho phép gán yếu tố thời gian lên các
dòng của ACL Các dòng này sẽ chỉ có hiệu lực trong khoảng thời gian được
gán Ví dụ: với time – based ACL, ta có thể cấm người dùng lướt web trong
khoảng thời gian từ 08g00 đến 12g00, mở ra cho người dùng được lướt web từ12g00 đến 13g00 và từ 13g00 đến 17g00 lại cấm lướt web trở lại
Chúng ta sẽ cùng khảo sát các loại ACL đặc biệt trên và bắt đầu với Reflexive ACL.
Như thường lệ, chúng ta sẽ tìm hiểu các vấn đề cần quan tâm thông qua các ví dụ labcấu hình
Sơ đồ:
Hình 6 – Sơ đồ bài lab ví dụ.
Mô tả: