Bài viết chuyên đề

Extended Access List

20/12/2017 11:34:56

Bài số 2: Chuyên đề Access Control List

Trong bài viết trước, chúng ta đã cùng nhau điểm qua một vài đặc điểm của ACL và khảo sát hoạt động của Standard access – list thông qua một ví dụ cấu hình. Trong bài viết lần này, chúng ta sẽ tiếp tục khảo sát hoạt động của 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 IP thì 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ất nhiề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.

Extended access – list cung cấp một phương tiện rất hiệu quả trong việc thao tác cấu hì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ạy trê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 1 – Sơ đồ bài lab ví dụ.

Mô tả:

Trên sơ đồ hình 1 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 nhau bằ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òn lạ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ỉ ra như trên hình 1.

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 server FTP, 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.
  • 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ủa mạ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ác host thuộc VLAN 10 có thể thực hiện ping, traceroute và tìm kiếm giá trị Path MTU 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ảo mọ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 định tuyến EIGRP trên R1 và R2:

Trên R1:

R1(config)#interface s0/0/0

R1(config-if)#no shutdown

R1(config-if)#ip add 192.168.12.1 255.255.255.252

R1(config-if)#exit

R1(config)#interface f0/0

R1(config-if)#no shutdown

R1(config-if)#ip add 192.168.10.1 255.255.255.0

R1(config-if)#exit

R1(config)#router eigrp 100

R1(config-router)#no auto-summary

R1(config-router)#network 0.0.0.0

Trên R2:

R2(config)#interface s0/0/0

R2(config-if)#no shutdown

R2(config-if)#ip add 192.168.12.2 255.255.255.252

R2(config-if)#exit

R2(config)#interface f0/0

R2(config-if)#no shutdown

R2(config-if)#ip add 192.168.20.1 255.255.255.0

R2(config-if)#exit

R2(config)#router eigrp 100

R2(config-router)#no auto-summary

R2(config-router)#network 0.0.0.0

Ta kiểm tra rằng R1 và R2 đã thấy các subnet của nhau trong bảng định tuyến:

R1#show ip route 192.168.20.0

Routing 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

  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

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ực hiệ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 giao thứ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 vào VLAN 10.

Đầu tiên, chúng ta viết access – list để chỉ cho các user thuộc VLAN 20 đi đến FTP server thuộc VLAN 10:

R1(config)#ip access-list extended VLAN10

R1(config-ext-nacl)#permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 range 20 21

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 ta phải chỉ ra cụ thể đây là access – list dạng standard hay extended và khai báo tên của access – list.

Dòng đầu tiên của ACL này chỉ rõ source IP được permit là toàn bộ mạng 192.168.20.0/24 với Destination IP là toàn bộ mạng 192.168.10.0/24. Vì FTP là ứng dụ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ùng cho  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. Data connection 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ột kế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ớn hơ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òng permit 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 80

Yêu cầu tiếp theo là chỉ cho các user thuộc VLAN 20 đi đến DNS – Server thuộc VLAN 10.

R1(config-ext-nacl)#permit udp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq 53

R1(config-ext-nacl)#permit tcp 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 eq 53

Vì 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, DNS chuyể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 ACL dạ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ức EIGRP để 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ụng protocol – 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 Echo Request 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 Echo Reply 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ị TTL tă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 đích. Tiếp theo, host trace sẽ tiếp tục gửi đi gói tin UDP đến địa chỉ đích muốn trace như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ói tin 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 tin ICMP 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 ACL như 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ích hợ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ăng dần và bit DF (Don’t Fragment) trong IP Header được bật lên. Khi kích thước này vi phạ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ích thướ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 too big” 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 ra mộ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 ngầ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 vi phạ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òng deny 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ới dò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ổng S0/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

Kiể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ũng như có các user thuộc VLAN 20. Vì đây là một bài lab Cisco, và để tiện cho việc thực tậ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ột router khác giả lập làm user của VLAN 20 để phục vụ cho việc test (hình 2).

Hình 2 – Sơ đồ test cấu hình ACL.

Như ta thấy, trên hình 2, router R3 sẽ giả lập làm các server HTTP, DNS và FTP; router R4 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 2 và chỉ các default route về các gateway của VLAN 10 và VLAN 20 là R1 và R2:

R3(config)#int f0/0

R3(config-if)#ip add 192.168.10.2 255.255.255.0

R3(config-if)#exit

R3(config)#ip route 0.0.0.0 0.0.0.0 192.168.10.1

R4(config)#int f0/0

R4(config-if)#ip add 192.168.20.2 255.255.255.0

R4(config-if)#exit

R4(config)#ip route 0.0.0.0 0.0.0.0 192.168.20.1

Ta thực hiện bật chức năng HTTP server, DNS server  và FTP server trên router R3:

R3(config)#ip http server

R3(config)#ip dns server

R3(config)#ip host R3 192.168.10.2

R3(config)#ftp-server enable

Do 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 FTP server 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 router Cisco nhưng có thể sử dụng tính năng này để kiểm tra được hoạt động của ACL có cho qua 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ểm tra. 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ặc khô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:

Router#telnet 1.1.1.1 80

Trying 1.1.1.1, 80 ...

Đầu tiên, từ R2 truy nhập bằng port 80 (HTTP) đến “server” R3:

R2#telnet 192.168.10.2 80

Trying 192.168.10.2, 80 ...

% 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:

R1#

*Mar  1 00:38:08.647: %SEC-6-IPACCESSLOGP: list VLAN10 denied tcp 192.168.12.2(20088) -> 192.168.10.2(80), 1 packet

R1#

Thông điệp này cho thấy ACL VLAN10 đã deny một gói TCP từ địa chỉ 192.168.12.2 đến host 192.168.10.2 bằng port 80.

Như vậy, R2 sử dụng địa chỉ 192.168.12.2 không thuộc subnet của VLAN 20 và vì vậy không truy nhập được HTTP đến server 192.168.10.2 của VLAN 10. Ta cũng thấy ACL VLAN 10 khi thực hiện deny một gói tin, một thông điệp syslog tường minh đã xuất hiện thông báo về hoạt động deny.

Ta 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]

R4#

Ta thấy rằng việc truy nhập đã thành công vì địa chỉ của R4 nằm trong dải được cho phép.

Ta quan sát kết quả match trên R1:

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 (6 matches)

    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 (772 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 (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 ta mong muốn.

Ta tiếp tục thử với DNS:

Trên R2:

R2(config)#ip domain-lookup

R2(config)#ip name-server 192.168.10.2

R2(config)#exit

R2#ping R3

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 DNS Query đế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 denied udp 192.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

R4(config)#exit

R4#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 địa chỉ đượ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ì ACL vừ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]

R4#

Như vậy hoạt động giới hạn truy nhập với HTTP, DNS và FTP cho riêng các user thuộc VLAN 20 đã đúng như yêu cầu đặt ra.

Ta tiếp tục kiểm tra các hoạt động ping, traceroute và tìm kiếm Path – MTU từ server bên trong VLAN 10 đi ra ngoài:

Từ bên ngoài không ping được vào VLAN 10:

R4#ping 192.168.10.2

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)

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

 

  1 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, đồng thời chỉnh lại MTU của cổng đấu nối xuống VLAN 20 của R2 thành 1492 byte.

R2(config)#interface f0/0

R2(config-if)#ip mtu 1492

R3#ping

Protocol [ip]:

Target IP address: 192.168.20.2

Repeat count [5]:

Datagram size [100]: 1500

Timeout in seconds [2]:

Extended commands [n]: y

Source address or interface: 192.168.10.2

Type of service [0]:

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

Success 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 (18 matches)

    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 đúng theo 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.

Trong các bài viết tới, chúng ta sẽ cùng nhau tìm hiểu tiếp các loại ACL khác được tích hợp trên Cisco IOS như Reflexive ACL, Dynamic ACL.

TRUNG TÂM WAREN