Cấu hình Remote Access IPSec VPN trên Cisco ASA

















- Remote access VPN là một phương pháp truy cập cho phép người dùng có thể kết nối đến site trung tâm (Centre Site) thông qua một kết nối bảo mật trên một mạng TCP/IP như Internet.
- Chương này sẽ mô tả phương pháp xây dựng một kết nối Remote Access VPN. Bao gồm những chủ đề sau:
+ Cấu hình tổng hợp
+ Cấu hình các Interface
+ Cấu hình ISAKMP Policy và Enable ISAKMP trên Outside Interface
+ Cấu hình một dải địa chỉ IP
+ Tạo một Transform Set
+ Định nghĩa một Tunnel Group
+ Tạo một Dynamic Crypto Map
+ Tạo một Crypto Map Entry để sử dụng Dynamic Crypto Map
1. Cấu hình tổng hợp
- Phần này sử dụng cấu hình tổng quát để giải thích phương pháp để cấu hình một kết nối truy cập từ xa. Những phần sau sẽ cung cấp những bước làm cụ thể.
ASA_5505(config)# interface ethernet0
ASA_5505(config-if)# ip address 10.10.4.200 255.255.0.0
ASA_5505(config-if)# nameif outside
ASA_5505(config)# no shutdown
ASA_5505(config)# isakmp policy 1 authentication pre-share
ASA_5505(config)# isakmp policy 1 encryption 3des
ASA_5505(config)# isakmp policy 1 hash sha
ASA_5505(config)# isakmp policy 1 group 2
ASA_5505(config)# isakmp policy 1 lifetime 43200
ASA_5505(config)# isakmp enable outside
ASA_5505(config)# ip local pool LANVPN 192.168.0.10-192.168.0.15
ASA_5505(config)# username VNEVPN password 12345678
ASA_5505(config)# crypto ipsec transform set FirstSet esp-3des esp-md5-hmac
ASA_5505(config)# tunnel-group vnegroup type ipsec-ra
ASA_5505(config)# tunnel-group vnegroup general-attributes
ASA_5505(config-general)# address-pool LANVPN
ASA_5505(config)# tunnel-group vnegroup ipsec-attributes
ASA_5505(config-ipsec)# pre-shared-key vnexperts123
ASA_5505(config)# crypto dynamic-map dyn1 1 set transform-set FirstSet
ASA_5505(config)# crypto dynamic-map dyn1 1 set reverse-route
ASA_5505(config)# crypto map mymap 1 ipsec-isakmp dynamic dyn1
ASA_5505(config)# crypto map mymap interface outside
ASA_5505(config)# write memory
2. Cấu hình các Interface
- Một thiết bị ASA phải có ít nhất 2 interface, một interface được sử dụng để kết nối ra Internet gọi là Interface Outside và một interface được sử dụng để kết nối vào mạng LAN gọi là Interface Inside.
- Để bắt đầu, trước tiên phải cấu hình và enable 2 interface trên thiết bị ASA. Sau đó gán tên, địa chỉ IP và subnet mask. Tùy chọn, cấu hình cấp độ bảo mật (security level), tốc độ và chế độ duplex trên các interface của thiết bị đó.
- Để cấu hình các interface, thực thi những bước sau, sử dụng đúng cú pháp của các câu lệnh trong những ví dụ sau:
Step 1: Vào chế độ cấu hình Interface, trong chế độ cấu hình global configuration nhập câu lệnh inteface với tên mặc định của interface để cấu hình. Ví dụ sau sẽ cấu hình trên interface tên là Ethernet 0:
ASA_5505(config)# interface ethernet0
ASA_5505(config-if)#

Step 2: Để cấu hình địa chỉ IP và subnet mask cho interface, sử dụng câu lệnh ip address. Trong ví dụ sau địa chỉ IP là 10.10.4.100 và subnet mask là 255.255.0.0 sẽ được sử dụng để cấu hình.
ASA_5505(config-if)# ip address 10.10.4.200 255.255.0.0
ASA_5505(config-if)#

Step 3: Gán tên cho interface, dùng câu lệnh nameif, tối đa là 48 ký tự cho tên của interface. Bạn không thể thay đổi tên này sau khi mà bạn đã gán nó vào interface. Trong ví dụ sau, thì tên của interface Ethernet 0 là Outside.
ASA_5505(config-if)# nameif outside
ASA_5505(config-if)#

Step 4: Để cho phép Interface đó hoạt động, sử dụng câu lệnh no shutdown. Theo mặc định thì interface sẽ bị disable.
ASA_5505(config-if)# no shutdown
ASA_5505(config-if)#

Step 5: Để lưu những thay đổi cấu hình trên ASA, sử dụng câu lệnh write memory
ASA_5505(config-if)# write memory
ASA_5505(config-if)#

Step 6: Để cấu hình một Interface thứ 2, sử dụng lại các bước như trên.

3. Cấu hình ISAKMP Policy và Enable ISAKMP trên Outside Interface
- Internet Security Association và Key Management Protocol, cũng được gọi là IKE, là một giao thức được dùng để đàm phán giữa 2 host chấp nhận một phương pháp để xây dựng một IPSec Security Association. Mỗi một quá trình đàm phán của ISAKMP sẽ được chia thành 2 quá trình nhỏ gọi là Phase 1 và Phase 2.
- Phase 1 tạo tunnel đầu tiên để bảo vệ những thông điệp ISAKMP thương lượng cuối cùng. Phase 2 tạo tunnel để bảo vệ dữ liệu được truyền trên kết nối bảo mật đó.
- Để tạo một quá trình ISAKMP tiến hành thương lượng, bạn tạo một ISAKMP policy. Policy đó bao gồm những thành phần sau:
* Một phương thức xác thực, để đảm bảo tính xác thực chính xác giữa hai thiết bị.
* Một phương thức mã hóa, để bảo vệ dữ liệu và tính riêng tư của dữ liệu đó.
* Một phương thức Hashed Message Authentication Code để đảm bảo tính xác thực của người gửi và đảm bảo thông điệp đó sẽ không bị sửa đổi gì trong quá trình truyền.
* Một nhóm Diffie-Hellman để gán độ lớn của khóa mã hóa.
* Một khoảng thời gian sẽ được ASA sử dụng một khóa mã hóa trước khi thay bằng khóa mã hóa khác.
- Để cấu hình ISAKMP Policy, bạn sử dụng chế độ cấu hình global configuration, và dùng câu lệnh isakmp policy với những tham số kèm theo. Cú pháp của câu lệnh cấu hình ISAKMP Policy là isakmp policy priority attribute_name [attribute_value | integer ].
- Thực thi theo những bước sau và sử dụng những câu lệnh trong ví dụ sau như một hướng dẫn:
Step 1: Cấu hình phương thức xác thực. Ví dụ sau cấu hình preshared key. Giá trị Priority là 1 trong ví dụ này:
ASA_5505(config)# isakmp policy 1 authentication pre-share
ASA_5505(config)#

Step 2: Cấu hình phương thức mã hóa. Ví dụ sau cấu hình 3DES.
ASA_5505(config)# isakmp policy 1 encryption 3des
ASA_5505(config)#
Step 3: Cấu hình phương thức HMAC. Ví dụ sau cấu hình SHA-1.
ASA_5505(config)# isakmp policy 1 hash sha
ASA_5505(config)#

Step 4: Cấu hình nhóm Diffie-Hellman. Ví dụ sau cấu hình nhóm 2.
ASA_5505(config)# isakmp policy 1 group 2
ASA_5505(config)#

Step 5: Cấu hình khoảng thời gian sử dụng khóa mã hóa. Ví dụ sau cấu hình 43200 giây (12 giờ )
ASA_5505(config)# isakmp policy 1 lifetime 43200
ASA_5505(config)#

Step 6: Cho phép ISAKMP hoạt động trên interface tên là outside.
ASA_5505(config)# isakmp enable outside
ASA_5505(config)#

Step 7: Để lưu những thay đổi cấu hình, nhập câu lệnh write memory
ASA_5505(config)# write memory
ASA_5505(config)#

4. Cấu hình một dải địa chỉ IP
- ASA cần một phương thức để gán địa chỉ IP cho các user. Phương thức đó là sử dụng một dải các địa chỉ. Thay vì phải có một DHCP server để gán một địa chỉ hoặc có một AAA server để gán chúng. Ví dụ sau sử dụng một dải địa chỉ.
Step 1: Để cấu hình một dải địa chỉ, dùng câu lệnh ip local pool. Cú pháp của câu lệnh là ip local pool poolname first_address-last_address. Trong ví dụ sau thì tên của dải IP đó là LANVPN.
ASA_5505(config)# ip local pool LANVPN 192.168.0.10-192.168.0.15
ASA_5505(config)#

Step 2: Lưu những thay đổi cấu hình
ASA_5505(config)# write memory
ASA_5505(config)#

5. Tạo một User
- Để xác định người dùng truy cập từ xa vào ASA, cấu hình usernames và passwords.
Step 1: Để tạo user, sử dụng câu lệnh username. Cú pháp của câu lệnh là username username password password. Trong ví dụ sau sẽ cấu hình username là vneuser và password là 12345678
ASA_5505(config)# username vneuser password 12345678
ASA_5505(config)#

Step 2: Lặp lại bước 1 với mỗi một user được tạo thêm.

6. Tạo một Transform Set
- Một transform set tích hợp một phương thức mã hóa và một phương thức xác thực. Trong suốt quá trình IPSec thương lượng một kết nối bảo mật với ISAKMP, thì các thiết bị đầu cuối chấp nhận sử dụng một thành phần transform set để bảo vệ luồng dữ liệu. Transform set sẽ phải giống nhau trên cả hai thiết bị đầu cuối.
- Bạn có thể tạo nhiều transform set, và sau đó chỉ định một hoặc nhiều những transform set trong một crypto map entry. Thiết bị ASA sử dụng tranform set để bảo vệ luồng dữ liệu cho crypto map entry access list.
Step 1: Để cấu hình một transform set, ở chế độ cấu hình global configuration sử dụng câu lệnh crypto ipsec transform-set. Cú pháp của câu lệnh:
crypto ipsec transform-set transform-set-name encryption-method authentication-method
Ví dụ sau sẽ cấu hình một transform set với tên FirstSet, phương thức mã hóa là esp-3des, phương thức xác thực là esp-md5-hmac.
ASA_5505(config)# crypto ipsec transform set FirstSet esp-3des esp-md5-hmac
ASA_5505(config)#

Step 2: Lưu những thay đổi.
ASA_5505(config)# write memory
ASA_5505(config)#

7. Định nghĩa một Tunnel Group
- Một tunnel group là một tập hợp của những bản ghi có chứa các chính sách của tunnel. Bạn cấu hình một tunnel group để xác định một AAA server, chỉ ra các tham số kết nối, và định nghĩa một chính sách nhóm mặc định. Thiết bị ASA sẽ lưu trữ các tunnel group này bên trong thiết bị.
- Có hai nhóm tunnel mặc định trong một hệ thống ASA là: DefaultRAGroup, là một tunnel group mặc định cho IPSec remote-access, và DefaultL2Lgroup, là một tunnel group mặc định cho IPSec LAN-to-LAN tunnel. Bạn có thể thay đổi chúng nhưng không được phép xóa chúng. Thiết bị ASA sử dụng các group để cấu hình các tham số tunnel mặc định cho remote access và cho LAN-to-LAN tunnel group khi mà tunnel group không được chỉ định trong suốt quá trình tunnel thương lượng.
- Để thiết lập một kết nối cơ bản remote access, bạn phải cấu hình 3 thuộc tính cho một tunnel group:
* Cấu hình loại kết nối cho IPSec remote access
* Cấu hình phương thức gán địa chỉ IP, trong ví dụ này, phương thức gán địa chỉ IP là sử dụng dải địa chỉ.
* Cấu hình phương thức xác thực, trong ví dụ này sử dụng preshared key.
Step 1: Để cấu hình loại kết nối cho IPSec remote access, dùng câu lệnh: tunnel-group. Cú pháp của câu lệnh là tunnel-group name type type, trong đó name là tên bạn gán cho tunnel group, và type là loại tunnel. Các loại tunnel mà bạn có thể nhập vào trong câu lệnh trên là:
* ipsec-ra (IPSec remote access)
* ipsec-l2l (IPSec Lan to Lan)
- Trong ví dụ này tên của tunnel group là vnegroup:
ASA_5505(config)# tunnel-group testgroup type ipsec-ra
ASA_5505(config)#

Step 2: Để cấu hình một phương thức xác thực cho tunnel group, sử dụng chế độ general-attributes và sau đó dùng câu lệnh address-pool để tạo một dải địa chỉ. Trong ví dụ này thì tên của group là vnegroup và tên của dải địa chỉ là LANVPN.
ASA_5505(config)# tunnel-group vnegroup general-attributes
ASA_5505(config-general)# address-pool LANVPN

Step 3: Để cấu hình phương thức xác thực, vào chế độ cấu hình ipsec-attributes và sau đó sử dụng câu lệnh pre-shared-key để tạo preshared key. Bạn cần sử dụng các preshared key giống nhau trên cả hai thiết bị là ASA và client.
ASA_5505(config)# tunnel-group testgroup ipsec-attributes
ASA_5505(config-ipsec)# pre-shared-key vnexperts123

Step 4: Lưu cấu hình thay đổi
ASA_5505(config)# write memory
ASA_5505(config)#

8. Tạo một Dynamic Crypto Map
- Thiết bị ASA sử dụng dynamic crypto maps để định nghĩa một chính sách tạm thời, trong đó tất cả các tham số không được cấu hình. Các dynamic crypto map cho phép ASA nhận những kết nối từ các VPN client chưa có địa chỉ IP.
- Dynamic crypto map sẽ xác định transform set cho các kết nối. Bạn cũng có thể enable định tuyến, để cho phép ASA có thể học các thông tin định tuyến từ các client kết nối trực tiếp, và quảng bá chúng qua RIP hoặc OSPF.
Step 1: để chỉ định một transform set cho một dynamic crypto map, sử dụng câu lệnh crypto dynamic-map set transform-set.
ASA_5505(config)# crypto dynamic-map dyn1 1 set transform-set FirstSet
ASA_5505(config)#

Step 2: Để enable RRI cho các kết nối dựa trên crypto map entry này, thì dùng câu lệnh crypto dynamic-map set reverse route.
ASA_5505(config)# crypto dynamic-map dyn1 1 set reverse-route
ASA_5505(config)#

Step 3: Lưu những cấu hình thay đổi
ASA_5505(config)# write memory
ASA_5505(config)#
9. Tạo một Crypto Map entry để sử dụng Dynamic Crypto Map
- Tiếp theo tạo một crypto map entry để cho phép ASA sử dụng dynamic crypto map để gán các tham số của IPSec security
Step 1: Để tạo một crypto map entry cho việc sử dụng dynamic crypto map, sử dụng câu lệnh crypto map. Cú pháp câu lệnh crypto map map-name seq-num ipsec-isakmp dynamic dynamic-map-name.
ASA_5505(config)# crypto map mymap 1 ipsec-isakmp dynamic dyn1
ASA_5505(config)#

Step 2: Để gán crypto map vào một interface outside, dùng câu lệnh crypto map interface. Cú pháp của câu lệnh map map-name interface interface-name
ASA_5505(config)# crypto map mymap interface outside
ASA_5505(config)#
Với bài viết này các bạn có thể tham khảo để xây dựng hệ thống VPN Remote Access cho chính doanh nghiệp của mình.

VNPT