Thứ Hai, 22 tháng 7, 2013

Tìm hiểu về IP Access Control Lists (ACLs) trên router Cisco


  1. Phân loại:
  • ACLs được phân làm các loại sau: Standard ACLs, Extended ACLs, Dynamic ACLs (Lock and Key), Reflexive ACLs, Time-based ACLs.
  • ACLs có thể được tạo ra bằng hai cách là dùng Numbered ACLs hay Name ACLs


  • Chúng ta đi tìm hiểu từng loại ACLs gồm đặc điểm, ứng dụng và cách tạo các loại ACLs đã kể bên trên
2. Standard ACLs

  • Đặc điểm: Standard ACLs là bảng lọc traffic đơn giản nhất trong các loại ACLs. Standard ACLs lọc traffic chỉ dựa vào thông số source address của gói tin.
  • Ứng dụng: Dùng để lọc traffic đơn giản chi dựa vào địa chỉ source address.
  • Cách tạo Standard ACLs:
Command:Router(config)#access-list access-list-number [deny/permit] remark source [source-wildcard] [log]


Ví dụ:


R3(config)#access-list 99 deny 192.168.10.0 0.0.0.255
R3(config)#access-list 99 permit any
R3(config)#interface s0/0/1
R3(config-if)#ip access-group 99 in


3. Extended ACLs

  • Đặc điểm: Extended ACLs là bảng lọc traffic dựa vào các thông tin trong gói tin gồm source address, destination address, protocols, port-number



  • Ứng dụng: Dùng để lọc gói tin dựa vào nhiều thông tin hơn standard ACL



  • Cách tạo Extended ACLs:


Command:





Ví dụ:



R3(config)#access-list 102 deny tcp 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 equal 23
R3(config)#access-list 102 deny tcp 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 equal 21
R3(config)#access-list 102 deny tcp 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255 equal 20
R3(config)#interface f0/2
R3(config-if)#ip access-group 102 in

4. Cách cấu hình Name ACLs: Ta dùng lệnh ip access-list sau đó chỉ định loại standard hay extended và cuối cùng là tên của ACLs
Ví dụ:



5. Dynamic ACLs

  • Đặc điểm: chỉ sử dụng lọc các IP traffic, Dynamic ACLs bị phụ thuộc vào sự kết nối Telnet, sự xác thực (local or remote), và extended ACLs.


+ Một user sẽ mở kết nối đến router biên được cấu hình lock-and-key. Những kết nối của user thông qua virtual terminal port trên router.
+ Khi nhận telnet packet router sẽ mỡ một telnet session và yêu cầu xác thực một password hoặc một tài khoản username. User phải vượt qua sát thực mới được cho phép đi qua router. Quá trình xác thực sẽ thực hiện bởi router hoặc một server xác thực sử dụng giao thức RADIUS hoặc TACACS server.
+ Khi user qua được sát thực, chúng sẽ thoát ra khỏi telnet session và một entry sẽ xuất hiện trọng Dynamic ACLs
+ Lúc đó, các người dùng sẽ trao đổi dữ liệu thông qua Firewall.
+ Khi dúng khoảng thời gian timeout được cấu hình, router sẽ xóa entry vừa tạo trong dynamic ACLs hoặc người quản trị có thể xóa bằng tay. Timeout có hai loại là idle timeout hoặc absolute timeout. Idle timeout là nếu user không sử dụng session này trong một khoảng thời gian thì entry trong Dynamip sẽ bị xóa. Absolute timeout là khoảng thời gian cố định cho phép user sử dụng session này khi hết thời gian thì entry trong Dynamic ACLs sẽ bị xóa.


  • Ứng dụng:


+ Khi bạn muốn chỉ định một user hay một group user truy cập đến một host nào đó trong mạng của bạn, hay kết nối tới những host từ xa thông qua Internet. Lock-and-key ACLs sẽ xác thực người dùng và sau đó cho phép giới hạn truy cập thông qua router firewall cho một host hay một mạng con trong một chu kỳ thời gian giới hạn.
+ Khi bạn muốn một đường mạng con trong mạng local network truy cập tới một host nào đó trong mạng từ xa mà được bảo vệ bởi một firewall. Với lock-and-key ACLs, bạn có thể truy cập tới host ở xa chỉ với một nhóm host được đề nghị. Lock-and-key ACLs yêu cầu những người dùng xác thực thông qua một AAA, TACACS+ server, hay những server bảo mật khác trước khi cho phép những host truy cập đến những host ở xa.


  • Cách tạo Dynamic ACLs:


Ví dụ

Các bước cấu hình:

Step 1: Tạo một tài khoản người dùng local trên router
Step 2: Tạo một Extended ACLs cho phép tất cả các host được telnet đến host 10.2.2.2. Khi telnet thành công sẽ cho phép đường mạng 192.168.10.0 đi qua đường mạng 192.168.30.0 với thời gian timeout 15 phút (absolute time)(ALCs động sẽ sinh ra khi lệnh access-enable được bật lên và sẽ mất đi sau 15 phút bất chấp user có sử dụng nó hay ko)
Step 3: Gán ACLs cho interface chỉ định
Step 4: Chỉ định nếu user telnet và xác thực thành công thì sẽ thiết lập một session 5 phút, nếu user ko sử dụng session này nó sẽ kết thúc sau 5 phút (idle timeout) nếu user sử dụng session này nó sẽ kết thúc sau 120 phút.



Ví dụ 2: Xác thực với TACACS server

//Enable chức năng xác thực AAA
aaa new-model
aaa authentication login default group tacacs+ enable
aaa accounting exec stop-only group tacacs+
aaa accounting network stop-only group tacacs+
enable password ciscotac
!
isdn switch-type basic-dms100
!
interface ethernet0
ip address 172.18.23.9 255.255.255.0
!
interface BRI0
ip address 172.18.21.1 255.255.255.0
encapsulation ppp
dialer idle-timeout 3600
dialer wait-for-carrier-time 100
dialer map ip 172.18.21.2 name diana
dialer-group 1
isdn spid1 2036333715291
isdn spid2 2036339371566
ppp authentication chap
ip access-group 102 in
!
//Cho phép các host telnet tới 172.18.21.2 bằng giao thức telnet. Khi telnet tới sẽ xác thực với tacacs server nếu xác thực thành công thì sẽ cho tất cả các traffic qua lại router và sẽ tự đóng session trong 5 phút
access-list 102 permit tcp any host 172.18.21.2 eq telnet
access-list 102 dynamic testlist timeout 5 permit ip any any
!
!
ip route 172.18.250.0 255.255.255.0 172.18.21.2
priority-list 1 interface BRI0 high
//Khai báo IP của taccas server và key để xác thực với tacacs server
tacacs-server host 172.18.23.21
tacacs-server host 172.18.23.14
tacacs-server key test1
tftp-server rom alias all
!
dialer-list 1 protocol ip permit
!
line con 0
password cisco
line aux 0
//Thời gian idle timeout cho session là 5 phút
line VTY 0 4
autocommand access-enable timeout 5
password cisco
!

6. Reflexive ACLs: 

  • Đặc điểm: ACLs này chỉ đc tạo bởi Extend Name ACLs không đc tạo bởi Numbering hay Standard Name ACL
  • Ứng dụng: được sử dụng để cho phép các IP traffic từ bên ngoài của session mà khởi tạo từ bên trọng nội mạng và ngăn những IP traffic khởi tạo session từ mạng bên ngoài. ACLs này sẽ xem xét gói tin gởi ra ngoài nếu là gói khởi tạo session nó tự động thêm vào một outbound entry để cho phép traffic trả lời về. Rèflexive ACLs có thể lọc session tốt hơn thay vì chỉ ACK và RST bit như câu lệnh permit…established. Rèflexive lọc cả địa chỉ nguồn, đích, port, ACK và RST bit của gói tin. Ngoài ra, session filtering sử dụng những bộ lọc tạm thời cái mà được xóa khi một session kết thúc.
  • Cách tạo Reflexive ACLs:
Ví dụ



+ Cấu hình ACLs cho phép ICMP và TCP traffic cả chiều inbound và outbound nhưng chỉ cho phép nếu gói tin đầu tiên của session bắt nguồn từ mạng nội bộ. Tất cả các traffic khác sẽ bị cấm. Reflexive ACLs được gán trên interface s0/1/0
+ Các bước cấu hình:
Step 1: Tạo một Extend name ACLs để cho phép các traffic đi ra ngoài Internet
Step 2: Tạo một Extend name ACLs để chứa Reflexive ACLs tự động được tạo ra khi có gói outbound match với Name ACLs ở bước 1.
Step 3: Gán các name ACLs cho interface



7. Time-based ACLs


  • Đặc điểm: chức năng tương tự extended ACLs, nhưng chúng cho phép điều khiển truy cập dựa vào thời gian
  • Ứng dụng: Dùng để lọc gói tin dựa vào nhiều thông tin như Exended ACLs và dựa vào cả thông tin về thời gian.
  • Cách tạo Time-based ACLs:
Ví dụ: Thiết lập ACLs cho phép một kết nối Telnet được cho phép từ inside network tới the outside network vào Monday, Wednesday, and Friday trong suốt giờ hành chánh.
+ Các bước cấu hình:
Step 1. Định nghĩa khoảng thời gian để thi hành ACLs và đặt cho nó một cái tên.(khoảng thời gian này phụ thuộc vào giờ hệ thống trên router, chức năng này làm việc tốt với sự đồng bộ thời gian của giao thức Network Time Protocol (NTP) nhưng lúc này đồng hồ của router không được sử dụng. )
Step 2. Áp dụng khoảng thời gian này cho ACLs
Step 3. ÁP dụng ACL cho interface.




TỔNG QUAN VỀ ACCESS-LIST


I- MỘT SỐ KHÁI NIỆM VỀ ACCESS-LIST
– ACL là một danh sách các câu lệnh được áp đặt vào các cổng (interface) của router. Danh sách này chỉ ra cho router biết loại packet nào được chấp nhận (allow) và loại packet nào bị hủy bỏ (deny). Sự chấp nhận và huỷ bỏ này có thể dựa vào địa chỉ nguồn, địa chỉ đích hoặc chỉ số port.
clip_image002

– Quản lý các IP traffic
– Hỗ trợ mức độ cơ bản về bảo mật cho các truy cập mạng, thể hiện ở tính năng lọc các packet qua router
• Chức năng:
+Xác định tuyến đường thích hợp cho DDR (dial-on-demand routing)
+ Thuận tiện cho việc lọc gói tin ip
+ Cung cấp tính sẵn sàn mạng cao
Có 2 loại Access lists là: Standard Access lists và Extended Access lists
– Standard (ACLs): Lọc (Filter) địa chỉ ip nguồn (Source) vào trong mạng – đặt gần đích (Destination).
– Extended (ACLs): Lọc địa chỉ ip nguồn và đích của 1 gói tin (packet), giao thức tầng “Network layer header” như TCP, UDP, ICMP…, và port numbers trong tầng “Transport layer header”. Nên đặt gần nguồn (source).
+ Inbound: nói nôm na là 1 cái cổng vào(theo chiều đi vào của gói tin) trên Router những gói tin sẽ được xử lý thông qua ACL trước khi được định tuyến ra ngoài (outbound interface). Tại đây những gói tin sẽ “dropped” nếu không trùng với bảng định tuyến (routing table), nếu gói tin (packet) được chấp nhận nó sẽ được xử lý trước khi chuyển giao (transmission).
+Outbound: là cổng đi ra của gói tin trên Router, những gói tin sẽ được định tuyến đến outbound interface và xử lý thông qua ACLs, trước khi đưa đến ngoài hàng đợi (outbound queue).
– ACL sẽ được thực hiện theo trình tự của các câu lệnh trong danh sách cấu hình khi tạo access-list. Nếu có một điều kiện được so khớp (matched) trong danh sách thì nó sẽ thực hiện, và các câu lệnh còn lại sẽ không được kiểm tra nữa.Trường hợp tất cả các câu lệnh trong danh sách đều không khớp (unmatched) thì một câu lệnh mặc định “deny any” được thực hiện. Cuối access-list mặc định sẽ là lệnh loại bỏ tất cả (deny all). Vì vậy, trong access-list cần phải có ít nhất một câu lệnh permit.
• Khi packet đi vào một interface, router sẽ kiểm tra xem có một ACL trong inbound interface hay không, nếu có packet sẽ được kiểm tra đối chiếu với những điều kiện trong danh sách.
• Nếu packet đó được cho phép (allow) nó sẽ tiếp tục được kiểm tra trong bảng routing để quyết định chọn interface để đi đến đích.
• Tiếp đó, router sẽ kiểm tra xem outbound interface có ACL hay không. Nếu không thì packet có thể sẽ được gửi tới mạng đích. Nếu có ACL ở outbound interface, nó sẽ kiểm tra đối chiếu với những điều kiện trong danh sách ACL đó.
6. Một số điểm cần lưu ý
* Chỉ có thể thiết lập 1 ACL trên giao thức cho mỗi hướng trên mỗi interface. Một interface có thể có nhiều ACL.
* Router không thể lọc traffic mà bắt đầu từ chính nó.
* Câu lệnh nào đặt trước thì xử lý trước. Khi 1 câu lệnh mới thêm vào danh sách, nó sẽ đặt cuối danh sách.
* Standard ACLs: Nên đặt gần đích của traffic.
* Extended ACLs: Nên đặt gần nguồn của traffic.
* Mặc định cả hai lệnh “the Access-Group” hay “the Access-Class” theo chiều “OUT”
II- CẤU HÌNH ACCESS-LIST (ACLs)
#: Standard ACLs sử dụng số từ 1 -> 99 hay 1300 -> 1999.
Có 2 bước để tạo ACLs:
+ Định nghĩa danh sách ACLs để đặt vào interface.
router(config)#access-list [#] [permit deny] [wildcard mask] [log]
Hoặc là :
router(config)#access-list [#] [permit deny] [host any] ßThường thì ta dùng lệnh này
Sau đó đặt danh sách(ACLs) vào interface trên router mà ta muốn chặn gói tin ngay tại đó.
router(config)#interface [interface-number]
router(config-if)#ip access-group [#] [in out] – interface access control
Ví dụ cụ thể
clip_image004

Ta thực hiện trên mô hình sau đã đuợc cấu hình hoạt động trên giao thức RIP các router và pc đã ping được với nhau.
• Tạo access list tại global config mode:
Tạo access-list trên R2 cấm PC0(10.0.0.2) vào mạng 220.0.0.0ngay tại cổng vào của Router 2.
R2(config)# access-list 1 deny host 10.0.0.2
R2(config)# access-list 1 permit any <<< Chú ý sau khi đã liệt kê các danh sách địa chi muốn cấp hoặc cho phép thì cuối cùng phải đặt lệnh permit any bởi vì mặc định của router sau khi ta thiêt lập danh sách thì kể từ sau đó router sẽ deny tất cả, vì vậy ta phải dùng lệnh permit any để thay đổi.
• Áp access-list vào cổng.
–Áp access-list này vào Inbound s0/3/0 trên R2.
–Khi áp access-list vào một cổng, xem như đang trên router. Vì vậy nếu muốn cấm dữ liệu đi ra khỏi cổng, ta dùng từ khóa “out”; muốn cấm dữ liệu vào một cổng, ta dùng từ khóa “in”.
R2(config)# interface s0/3/0
R2(config-if)# ip access-group 1 out
clip_image006

Sau đó ta vào PC0(10.0.0.2) dùng lệnh ping vào mạng 220.0.0.0 để kiểm tra.

clip_image008

Ta thử dùng máy PC1(10.0.0.3) ping vào mạng 220.0.0.0.

clip_image010

–Vì standard access-list chỉ kiểm tra được địa chỉ nguồn nên phải áp access-list vào cổng gần đích nhất.
Cũng giống standard ACL và thêm một số cách lọc gói tin như:
+ Source and destination IP address (Địa chỉ nguồn địa chỉ đích)
+ IP protocol – TCP, UDP, ICMP, and so on( cấm giao thức)
+ Port information (WWW, DNS, FTP, TELNET, etc)( cấm các dịch vụ thông qua các cổng hoạt động của nó)
Các lệnh cấu hình:
Ta cũng thực hiện 2 bước giống như Standard ACLs
• Tạo access list tại global config mode:
router(config)#access-list [#] [permit deny] [protocol] [wildcard mask] [operator source port] [destination address] [wildcard mask] [operator destination port] [log]
Hoặc
router(config)#access-list [#] [permit deny] [protocol] [host] [host] [destination address][ lt, gt, neq, eq, range] [port number]
• Áp access-list vào cổng.
router(config)#interface [interface-number]
router(config-if)#ip access-group [#] [in out] – interface access control
Ví dụ:
Tạo ACls tại router R1 cấm R2 truy cập vào Router 1 dưới giao thức TCP bằng dịch vụ Telnet.
Đầu tiên ta mở dịch vụ telnet cho các Router
Tại global config mode ta gõ các lệnh sau.
router(config)#line vty 0 4
router(config)#password telnet <<<<Đặt pass tùy ý cho telnet
router(config)#login

clip_image012
clip_image014

Khi cấu hình xong ta đứng tại 1 Router nào đó telnet qua Các router còn lại để Test.

clip_image016

Vậy là các Router đã telnet được với nhau
Bây giờ ta thiết lập ACL tại R1
R1(config)# access-list 101 deny TCP host 200.0.0.2 host 200.0.0.1 eq telnet
R1(config)# access-list 101 deny tcp any any
Áp ACL vào cổng muốn chặn lại ngay đó.
R1(config)# interface s0/3/0
R1(config-if)#ip access-group 101 in

clip_image018

Sau khi cấu hình xong ta Telnet thử
Đứng tại Router 2 Telnet qua Router 1 bằng lệnh
R2#telnet 200.0.0.1

clip_image020

Router 1 không trả lời vậy là ta đã cấu hình thành công
Một số port thông dụng:
——————————————————————–
Port Number ——-TCP port names —-UDP port names
——————————————————————–
6 ———————-TCP————————————–
21———————-FTP————————————–
23 ———————TELNET——————————–
25 ———————SMTP————————————
53———————————————-DNS————-
69 ———————————————TFTP————-
80 ———————WWW———————————–
161 ——————————————–SNMP———–
520 ——————————————–RIP—————
III- QUẢN LÝ CÁC ACCESS-LIST (ACLs)
• Hiển thị tất cả ACLs đang sử dụng. Router(config)#show running-config
• Xem ACLs hoạt động trên interface nào đó. Router(config)#show interface [ # ]
• Xem việc đặt và hướng đi của ip ACLs: Router(config)#show ip interfaces [ # ]
• Xem những câu lệnh ACLs: Router(config)#show access-list [ # ]
• Hiển thị tất cả ip ACLs: Router#show ip access-list
• Hiển thị ip ACL 100: Router#show ip access-list 100
• Xóa bộ đếm (to clear the counters use):
router(config)#show access-list [ # ]
router(config)#clear access-list counter [ # ]
• Xóa Access list
router(config)#no ip access-list [standard-extended][#]
router(config)#interface [interface-number]
router(config-if)#no access-list [#] [permit deny] [wildcard mask]
  

0 nhận xét:

Đăng nhận xét