[FIREWALL ASA] – Bài 2: Access-Control List (ACL)

Người viết bài : Tuấn
Tham khảo ebook:
– [Ebook] Cisco ASA All-in-one Next-Generation Firewall, IPS, and VPN Services, 3rd Edition

Sơ đồ:
 
Mô tả:
Bài lab này hướng đến thực hành các kĩ năng  điều khiển truy cập thông qua access-list trên thiết bị firewall ASA. Trong bài lab này, chúng ta sẽ khảo sát extended-ACL. Trong khi đó Standard-ACL trong firewall ASA không thể lọc gói tin trên interface, chỉ có thể chạy trong chế độ routed mode. Tiếp theo chúng ta sẽ tìm hiểu về object-group, một trong những phương pháp rút gọn trong việc viết access-list, những ứng dụng của object-group vào standard access-list và extend-ACL.

Chúng ta sẽ cùng tìm hiểu thông qua 2 ví dụ cơ bản về cấu hình extended-ACL cho phép ping DNS GOOGLE và cấu hình object-group để chặn truy cập 1 WEB nhất định.

Thực hiện:
Bước 1: Cấu hình cơ bản
Đầu tiên chúng ta sẽ cấu hình đỉa chị IP cho firewall ASA.

ASA# configure terminal
ASA(config)# interface GigabitEthernet0/0
ASA(config-if)# ip add 192.168.1.1 255.255.255.0
ASA(config-if)# nameif inside
INFO: Security level for "inside" set to 100 by default.
ASA(config-if)# no shutdown
ASA(config-if)# exit
ASA(config)# int GigabitEthernet0/1
ASA(config-if)# nameif dmz
INFO: Security level for "dmz" set to 0 by default.
ASA(config-if)# ip add 209.165.200.225 255.255.255.224
ASA(config-if)# no shutdown
ASA(config-if)#exit
ASA(config)# int GigabitEthernet0/2
ASA(config-if)# nameif outside
ASA(config-if)# ip add dhcp setroute
ASA(config-if)# no shutdown

Ở bước này chúng ta đã cấu hình trên 3 cổng GigabitEthernet0/0 , GigabitEthernet0/1 và GigabitEthernet0/2 để giao tiếp với mạng inside, DMZ và outside. Đối với outside là internet, chúng ta sẽ cấu hình như là 1 DHCP client và sẽ nhận IP từ internet cấp xuống.

Bước 2: Cấu hình extended-ACL
Đầu tiên chúng ta sẽ kiểm tra việc ping từ PC đến DNS của google.
 
Tiếp theo chúng ta sẽ thực hiện cấu hình standard-ACL để có thể ping được qua ASA.

ASA(config)#access-list ping permit icmp any any echo-reply

Xét cú pháp của 1 command access-list chuẩn :

ASA(config)# access-list id [extended][line line-num] {deny | permit}{protocol | object-group protocol_obj_grp_id {source_addr source_mask} | object-group network_obj_grp_id| host src_host_addr [operator port [port] | object-group service_obj_grp_id] {destination_addr destination_mask} | object-group network_obj_grp_id| host dst_host_addr [operator port [port] | object-group service_obj_grp_id]} [log [[disable | default] | level] [interval secs] [time_range name]] [inactive]

Ta sẽ phân tích cấu trúc của câu lệnh trên. Trong câu lệnh trên, chúng ta sử dụng name access-list với tên của access-list là “ping”. Điều kiện là “permit” cho phép từ bất kì source nào tới bất kì host nào. Từ khóa “any” sẽ thay cho địa chỉ IP và subnet mask là 0.0.0.0 255.255.255.255 . Cuối cùng là cờ echo-reply.

Lưu ý: mặc định firewall ASA sẽ chặn gói tin khi đi từ vùng có security-level thấp hơn sang vùng có security-level cao hơn.

Tiếp theo chúng ta sẽ áp access-list vừa cấu hình lên interface.

ASA(config)#access-group ping in interface outside

Cấu trúc câu lệnh :

ASA(config)#access-group access-list {in | out} interface interface_name

Ở đây chung ta sẽ áp access-list ping lên interface outside là G0/1 và theo chiều in.
Kiểm tra:
Bây giờ chúng ta sẽ thực hiện lại việc ping từ PC ra DNS của google là 8.8.8.8.
 
Đến đây thì chúng ta đã thực hiện cấu hình thành công extended access-list!

Bước 3: Cấu hình extended ACL ứng dụng Object-group
Thực hiện yêu cầu viết access-list cấm PC1 truy cập vào zing.vn còn PC2 vẫn truy cập được bình thường.
Cấu hình:
Thay vì viết từng access-list cho từng PC , bây giờ chúng ta sẽ dùng tính năng object-group nhằm giảm số lượng access-list entry xuống. Điều này là cực kì quan trong đối với các mô hình có số lượng PC lớn, yêu cầu phức tạp, và nhiều giao thức.
Đầu tiên chúng ta sẽ khai báo 1 object-group:

ASA(config)# object-group protocol TCP
ASA(config-protocol)# protocol-object tcp
ASA(config-protocol)# exit
ASA(config)# object-group network INSIDE
ASA(config-network)# network-object host 192.168.1.2
ASA(config-network)# exit
ASA(config)# object-group network OUTSIDE
ASA(config-network)# network-object host 120.138.69.70
ASA(config)# object-group service HTTP tcp
ASA(config-service)# port-object eq http
ASA(config-service)# exit

Cấu trúc của 1 object-group có dạng như sau:

ASA(config)#object-group {{protocol | network | icmp-type} grp_id | service grp_id {tcp | udp | tcp-udp}}

Object-group trên firewall ASA bao gồm 4 loại với 4 chức năng khác nhau là: protocol, network, icmp-type và service. Chúng ta sẽ cùng điểm qua về 4 object này:
•    Protocol: đây là các giao thức layer 3 IP .
•    Network: đây là từ khóa chỉ ra các host, subnet hoặc là IP address.
•    ICMP-type: dùng để chỉ các cờ ECHO, echo-reply.
•    Service: dùng để chỉ các dịch vụ tại layer 4 như giao thức TCP hoặc UDP.

Tiếp theo chúng ta sẽ cấu hình access-list kết hợp với các object-group đã liệt kê phía trên.

ASA(config)# access-list INSIDE_OUTSIDE extended deny object-group TCP object-group INSIDE object-group OUTSIDE object-group HTTP

Cấu trúc của 1 access-list kết hợp với object group như sau:

ASA(config)#access-list id [extended][line line-num] {deny | permit} object-group protocol_obj_grp_id object-group network_obj_grp_id object-group service_obj_grp_id] object-group network_obj_grp_id object-group service_obj_grp_id] [log [[disable | default] | level] [interval secs] [time-range time_range_ID]] [inactive]

Thay vì viết rất nhiều dòng để thực thi việc chặn web thì giờ đây với sự giúp đỡ của object-group thì số lượng access-list entry sẽ giảm xuống và sẽ giảm độ phức tạp của việc cấu hình hơn rất nhiều.
Chúng ta sẽ cùng phân tích câu lệnh như sau:
INSIDE_OUTSIDE :  đây là ID của access-list trong ASA, chúng ta có thể đặt bất kì ID bằng chữ nào, tuy nhiên để mang tính chất gợi nhớ thì nên đặt những ID gần với access-list mà chúng ta sử dụng.
Extended : loại access-list mà chúng ta sẽ áp dụng.
Deny : điều kiện cho phép(permit) hoặc chặn(deny) đối với access-list.
Object-group : đây là các object-group chúng ta sẽ áp lên access-list.

Kiểm tra:
Chúng ta sẽ kiểm tra trước khi có access-list.

 

Sau khi access-list được áp lên:
 

Như vậy chúng ta đã cấu hình thành công sử dụng access-list kết hợp với việc chặn WEB!

Previous articleKeePass 2.29
Next article7-Zip 15.05
"Networking luôn có sức hấp dẫn và những điều mới mẻ riêng. Hãy cùng tôi chia sẻ những điều ấy" - Email: tuanmmt@gmail.com - Skype: tuanmmt . (Cộng Tác Viên mảng - Networking)