CẤU HÌNH VPN CLIENT-TO-SITE IPSEC TRÊN FIREWALL CISCO ASA
10- CÁC BƯỚC CẤU HÌNH VPN CLIENT-TO-SITE IPSEC TRÊN FIREWALL CISCO ASA
Việc cấu hình VPN remote access trên Cisco Firewall (thường là Cisco ASA hoặc Firepower Threat Defense - FTD) có một số điểm khác biệt so với router Cisco, chủ yếu liên quan đến các tính năng bảo mật và giao diện quản lý. Dưới đây là các bước chung và một ví dụ cấu hình sử dụng Client-to-Site IPsec VPN trên Cisco ASA:

1. Xác định yêu cầu và thiết kế VPN:
Loại VPN: Client-to-Site IPsec VPN (thường dùng Cisco AnyConnect), hoặc IPsec IKEv2 Remote Access VPN.
Địa chỉ IP: Dải địa chỉ IP sẽ cấp phát cho VPN client.
Phương thức xác thực: AAA server (RADIUS/TACACS+), Local Database.
Giao thức mã hóa và băm: Lựa chọn các thuật toán mạnh mẽ (AES-GCM, SHA-2).
Chính sách Group Policy: Định nghĩa các thuộc tính cho VPN session (DNS, WINS, Split Tunneling, Idle Timeout...).
Tunnel Group: Liên kết các thuộc tính cấu hình VPN.
2. Cấu hình Interface:
Đảm bảo interface bên ngoài (kết nối internet) của firewall có địa chỉ IP public và được cấu hình đúng.
3. Cấu hình Address Pool:
Tạo một dải địa chỉ IP nội bộ (không trùng với các mạng hiện có) để cấp phát cho các VPN client khi chúng kết nối.
4. Cấu hình Group Policy:
Tạo một Group Policy để định nghĩa các thuộc tính của VPN session, ví dụ:
1.Address Pools: Liên kết với dải địa chỉ IP đã tạo.
2.DNS Servers: Chỉ định DNS server cho VPN client sử dụng.
3.WINS Servers (nếu cần): Chỉ định WINS server.
4.Split Tunneling: Quyết định lưu lượng nào sẽ đi qua VPN tunnel và lưu lượng nào đi trực tiếp ra internet từ client.
5.Idle Timeout: Thời gian chờ không hoạt động trước khi ngắt kết nối VPN.
6.VPN Filter (ACL): Kiểm soát lưu lượng mà VPN client có thể truy cập vào mạng nội bộ.
5. Cấu hình Tunnel Group:
Tạo một Tunnel Group và cấu hình các thuộc tính liên quan đến kết nối VPN:
General Attributes: Chọn kiểu kết nối (Remote Access).
IPsec Attributes (IKEv1 hoặc IKEv2):
IKE Policies: Định nghĩa các policy IKE Phase 1 (Encryption, Hash, Authentication, Group, Lifetime).
IPsec Proposals (Transform Sets): Định nghĩa các proposal IPsec Phase 2 (Protocol, Encryption, Hash).
Authentication: Chọn phương thức xác thực (AAA hoặc Local). Nếu dùng Pre-shared Key, cấu hình tại đây.
Clientless SSL VPN Attributes (nếu sử dụng): Cấu hình cho VPN không cần cài đặt client.
WebVPN: Cấu hình các portal, bookmark (nếu sử dụng Clientless SSL VPN).
Group Policy: Liên kết với Group Policy đã tạo.
6. Cấu hình AAA (nếu sử dụng):
Định nghĩa các server AAA (RADIUS hoặc TACACS+) trên firewall.
Tạo các nhóm server AAA và cấu hình giao thức, địa chỉ server, secret key.
Cấu hình authentication, authorization, và accounting (AAA) methods để sử dụng các server AAA này cho VPN.
7. Cấu hình Local Authentication (nếu sử dụng):
Tạo user accounts và password trực tiếp trên firewall.
8. Cấu hình NAT Exemption (nếu cần):
Tạo một NAT rule để loại trừ lưu lượng từ VPN client đến mạng nội bộ khỏi quá trình NAT, đảm bảo chúng có thể truy cập tài nguyên nội bộ bằng địa chỉ IP được cấp phát.
9. Cấu hình Access Control List (ACL):
Tạo một ACL để kiểm soát lưu lượng từ dải địa chỉ IP của VPN client đến các tài nguyên bên trong mạng LAN. ACL này thường được áp dụng trên interface bên trong.
Nếu sử dụng Split Tunneling, bạn có thể cần một ACL để xác định lưu lượng nào sẽ được mã hóa và đi qua tunnel.
Ví dụ cấu hình Client-to-Site IPsec VPN (IKEv2) trên Cisco ASA (CLI):
Giả sử chúng ta có sẵn:
Interface bên ngoài: outside với địa chỉ IP 203.113.100.19
Mạng LAN: 192.168.1.0/24 trên interface inside
Dải IP cấp phát cho VPN client: 172.16.1.0/24
AAA Server Group: RADIUS_SERVERS (đã được cấu hình)
Group Policy Name: REMOTE_ACCESS_POLICY
Tunnel Group Name: REMOTE_ACCESS_TG

CẤU HÌNH TRÊN CLI
FdcFwcisco(config)# object network VPN_POOL_NET
FdcFwcisco(config-object)# subnet 172.16.1.0 255.255.255.0
FdcFwcisco(config)# object network LOCAL_LAN
FdcFwcisco(config-object)# subnet 192.168.1.0 255.255.255.0
FdcFwcisco(config)# group-policy REMOTE_ACCESS_POLICY internal
FdcFwcisco(config)# group-policy REMOTE_ACCESS_POLICY attributes
FdcFwcisco(config-policy)# address-pools value VPN_POOL_NET
FdcFwcisco(config-policy)# dns-servers value 8.8.8.8 8.8.4.4
FdcFwcisco(config-policy)# split-tunnel policy tunnelspecified
FdcFwcisco(config-policy)# split-tunnel network list value LOCAL_LAN
FdcFwcisco(config-policy)# vpn-filter value VPN_ACCESS_IN
FdcFwcisco(config)# access-list VPN_ACCESS_IN extended permit ip object VPN_POOL_NET object LOCAL_LAN
FdcFwcisco(config)# tunnel-group REMOTE_ACCESS_TG type remote-access
FdcFwcisco(config)# tunnel-group REMOTE_ACCESS_TG general-attributes
FdcFwcisco(config-tunnel)# address-pool VPN_POOL_NET
FdcFwcisco(config-tunnel)# authentication-server-group RADIUS_SERVERS
FdcFwcisco(config-tunnel)# default-group-policy REMOTE_ACCESS_POLICY
FdcFwcisco(config)# tunnel-group REMOTE_ACCESS_TG ipsec-attributes
FdcFwcisco(config-tunnel)# ikev2 remote-access
FdcFwcisco(config-tunnel)# ikev2 policy 10
FdcFwcisco(config-tunnel-ikev)# encryption aes-256
FdcFwcisco(config-tunnel-ikev)# integrity sha-256
FdcFwcisco(config-tunnel-ikev)# group 14
FdcFwcisco(config-tunnel-ikev)# prf sha-256
FdcFwcisco(config-tunnel-ikev)# lifetime seconds 86400
FdcFwcisco(config)# tunnel-group REMOTE_ACCESS_TG ipsec-attributes
FdcFwcisco(config-tunnel)# ipsec ikev2 ipsec-proposal AES256-SHA256
FdcFwcisco(config-tunnel-ikev)# protocol esp encryption aes-256
FdcFwcisco(config-tunnel-ikev)# protocol esp integrity sha-256
FdcFwcisco(config)# crypto ikev2 enable outside
FdcFwcisco(config)# crypto ikev2 policy 10
FdcFwcisco(config-crypto)# encryption aes-256
FdcFwcisco(config-crypto)# integrity sha-256
FdcFwcisco(config-crypto)# group 14
FdcFwcisco(config-crypto)# prf sha-256
FdcFwcisco(config-crypto)# lifetime seconds 86400
FdcFwcisco(config)# crypto ipsec ikev2 ipsec-proposal AES256-SHA256
FdcFwcisco(config-crypto)# protocol esp encryption aes-256
FdcFwcisco(config-crypto)# protocol esp integrity sha-256
FdcFwcisco(config)# nat (inside,outside) 0 access-list VPN_ACCESS_IN
FdcFwcisco(config)# access-list outside_access_in extended permit udp any eq isakmp any eq isakmp
FdcFwcisco(config)# access-list outside_access_in extended permit udp any eq nat-t any eq nat-t
FdcFwcisco(config)# access-list outside_access_in extended permit esp any any
FdcFwcisco(config)# group-policy REMOTE_ACCESS_POLICY attributes
FdcFwcisco(config-policy)# vpn-filter value VPN_ACCESS_IN
Giải thích cấu hình:
object network: Định nghĩa các đối tượng mạng cho dải IP VPN và mạng LAN.
group-policy: Định nghĩa các thuộc tính cho phiên VPN (address pool, DNS, split tunnel, VPN filter).
access-list VPN_ACCESS_IN: Kiểm soát lưu lượng từ VPN client đến mạng LAN.
tunnel-group: Cấu hình các thuộc tính kết nối VPN, bao gồm liên kết với address pool, AAA server group, và group policy.
tunnel-group ... ipsec-attributes: Cấu hình các policy IKEv2 và proposal IPsec.
crypto ikev2 enable outside: Bật IKEv2 trên interface bên ngoài.
crypto ikev2 policy: Định nghĩa policy IKEv2.
crypto ipsec ikev2 ipsec-proposal: Định nghĩa proposal IPsec IKEv2.
nat (inside,outside) 0 access-list VPN_ACCESS_IN: Miễn trừ lưu lượng VPN khỏi NAT khi đi từ bên trong ra bên ngoài (thực tế là lưu lượng đã được giải mã).
access-list outside_access_in: Cho phép lưu lượng IKE (UDP 500), NAT-T (UDP 4500), và ESP đi qua interface bên ngoài.
Lưu ý quan trọng:
Đây là một ví dụ cấu hình cơ bản sử dụng IKEv2 và AAA (RADIUS). Cấu hình có thể khác tùy thuộc vào yêu cầu và phương thức xác thực bạn chọn.
Bạn cần đảm bảo các cổng UDP 500, UDP 4500 (NAT-T), và giao thức ESP được cho phép đi qua firewall vật lý hoặc các firewall trung gian.
Trên VPN client (ví dụ: Cisco AnyConnect), bạn cần cấu hình kết nối với địa chỉ IP public của firewall và thông tin xác thực.
Đối với Cisco FTD, việc cấu hình thường được thực hiện thông qua Firepower Management Center (FMC) với giao diện đồ họa, mặc dù vẫn có tùy chọn CLI. Các khái niệm cấu hình tương tự nhưng giao diện và cú pháp có thể khác biệt.
Hãy luôn kiểm tra kỹ lưỡng cấu hình và đảm bảo các chính sách bảo mật phù hợp với yêu cầu của bạn.
Chúc bạn cấu hình thành công! Nếu bạn có bất kỳ câu hỏi cụ thể nào hoặc muốn cấu hình cho một loại VPN khác (ví dụ: SSL VPN), hãy cho tôi biết nhé.