| ]

Cấu hình Pre-shared key cho site to site VPN ta cần phải làm một số bước như sau:
Những việc cần chuẩn bị cho việc cấu hình IPSec và Preshared key.
Cấu hình IKE (Internet Key Exchange).
Cấu hình IPSec.
Kiểm tra quá trình cấu hình.

I. Một số công việc ta cần kiểm tra trước

Kiểm tra các kết nối đã được cấu hình thông chưa.
Kiểm tra xem Access-list có cho phép dùng IPSec hay không.
Kiểm tra xem router cho phép quá trình crypto hay không.
Xác nhận xem interface nào sẽ được apply quá trình crypto.
Chính sách crypto nào sẽ được apply.

II. Cấu hình IKE

Trong mode IKE cho phép đồng bộ hóa IPSec policy đến remote user. Sau khi làm xong quá trình này cho phép các client kết nối đến router download một ip address và các cấu hình network thông qua DHCP. Địa chỉ IP này được dùng như là một địa chỉ bên trong được dùng trong quá trình đóng gói tin dưới nền IPSec và nó cũng được dùng xem nó có tương ứng với IPSec policy hay không.
Quá trình cấu hình IKE với pre-shared bao gồm 4 bước:
enable isakmp
Tạo policy cho IKE
Cấu hình tính đồng bộ cho IKE và pre-shared key
Kiểm tra quá trình hoạt động của IKE.
a. Enable isakmp
Dùng câu lệnh crypto isakmp enable trong global mode.
b. Tạo chính sách cho IKE

Sau khi đã enable isakmp trên router kế đến ta cần xác định xem policy nào sẽ được apply. Một số công việc ta cần phải xác định như sau:
Số priority nào sẽ được gán vào policy. Trong quá trình này thì số priority càng nhỏ thì độ ưu tiên của nó càng cao. Điều này rất cần thiết khi ta cấu hình nhiều IKE policy.
Phương thức mã hóa thông tin sẽ được dùng là gì ? Mặc định router dùng DES tuy nhiên ta có thể chuyển sang dùn 3DES
Phương thức hash được dùng. Mặc định router dùng SHA ta có thể chuyển sang dùng MD5
Phương thức chứng thực được dùng. Ở đây ta sẽ cấu hình dùng pre-shared key.
Kế đến là Diffie – Hellman group nào sẽ được dùng. Mặc định là group 1 768 bit Diffie – Hellman được dùng và ta cũng có thể chuyển sang dùng group 2 1024 bit Diffie – Hellman.
Lifetime được gán vào cho Internet Key Exchange security associate.
Các câu lệnh ta sẽ dùng tương ứng với những mục ở trên như sau:
Đầu tiên là ta tạo ra một policy bằng câu lệnh sau crypto isakmp policy priority được gán trong global mode.
Xác định phương thức mã hóa với câu lệnh encryption {des|3des}
Xác định phương thức hash bằng câu lệnh hash {sha|md5}
Xác định phương thức chứng thực bằng câu lệnh authentication {rsa-sig|rsa-encr|pre-share}
Xác định Diffe-Hellman group được dùng group {1|2}
Xác định thời gian sống lifetime seconds

3. Cấu hình tính đồng bộ cho IKE và Pre-share key
Sau khi ta đã cấu hình IKE policy cho các thiết bị thì bước kế tiếp ta làm ở đây sẽ là thiết lập tính đồng bộ (identity) cho IKE và pre-share key cho các thiết bị. Mặc định thì router dùng IP address cho quá trình đồng bộ giữa các thiết bị. Tuy nhiên ta có thể chuyển sang dùng hostname cho quá trình đồng bộ. Mặc định thì router dùng IP address cho quá trình này. Câu lệnh dùng để chuyển như sau:
crypto isakmp identity {address | hostname}
Cấu hình pre-share key là quá trình mà ta phải làm. Bạn phải xác định preshare-key nào sẽ được dùng cho các thiết bị trong mạng của mình. Preshare key phải được cấu hình giống nhau trên các peer. Bởi vì các peer của ika chứng thực với nhau bằng tạo và gửi những key đã được hash mà nó bao gồm preshare key trong đó. Và ở peer nhận sẽ tạo lại key bằng cách dùng chung thuật toán hash và preshare key. Câu lệnh cấu hình như sau:
crypto isakmp key keystring {address peer-address | hostname peer – hostname}

Ta có sơ đồ bài lab như sau:



Trước khi cấu hình Internet Key Exchange trên router ta cấu hình địa chỉ vào các interface của nó như sau:
R1#conf t
R1(config)#int s 1/0
R1(config-if)#ip add 172.18.214.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#cl ra 64000
R1(config-if)#exit
R1(config-if)#int fa 0/0
R1(config-if)#ip add 10.10.10.1 255.255.255.0
R1(config-if)#no sh
R1(config-if)#no kee
R1(config-if)#exit

R2#conf t
R2(config)#int s 1/0
R2(config-if)#ip add 172.18.214.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#cl ra 64000
R2(config-if)#exit
R2(config-if)#int fa 0/0
R2(config-if)#ip add 10.10.20.1 255.255.255.0
R2(config-if)#no sh
R2(config-if)#no kee
R2(config-if)#exit


Ta cấu hình Internet Key Exchange trên Router 1 và Router 2 như sau
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#crypto isakmp enable
R1(config)#crypto isakmp policy 2
R1(config-isakmp)#encryption 3des
R1(config-isakmp)#hash md5
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#exit
R1(config)#crypto isakmp key cisco address 172.18.124.2
R1(config)#^Z
R1#

R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#crypto isakmp enable
R2(config)#crypto isakmp policy 2
R2(config-isakmp)#encryption 3des
R2(config-isakmp)#hash md5
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#exit
R2(config)#crypto isakmp key cisco address 172.18.124.1
R2(config)#^Z
R2#
Lúc này thì ta đã cấu hình isakmp policy. Để xem lại ta kiểm tra lại ta có cấu hình như thế nào thì ta dùng lệnh show crypto isakmp xem lại các thông số của isakmp policy.
R1#show crypto isakmp policy
Protection suite of priority 2
encryption algorithm: 3DES--Triple Data Encryption Standard (168 bit
keys)
hash algorithm: Message Digest 5
authentication method: Pre-Shared Key
Diffie-Hellman group: #1 (768 bit)
lifetime: 86400 seconds, no volume limit
Default protection suite
encryption algorithm: DES--Data Encryption Standard
hash algorithm: Secure Hash Standard
authentication method: Rivest-Shamir-Adleman Signature (56 bit keys)
Diffie-Hellman group: #1 (768 bit)
lifetime: 86400 seconds, no volume limit
R1#

R2#show crypto isakmp policy
Protection suite of priority 2
encryption algorithm: 3DES--Triple Data Encryption Standard
hash algorithm: Message Digest 5
authentication method: Pre-Shared Key
Diffie-Hellman group: #1 (768 bit)
lifetime: 86400 seconds, no volume limit
Default protection suite
encryption algorithm: DES--Data Encryption Standard
hash algorithm: Secure Hash Standard
authentication method: Rivest-Shamir-Adleman Signature
Diffie-Hellman group: #1 (768 bit)
lifetime: 86400 seconds, no volume limit
R2#
Quá trình chứng thực bằng IKE hỗ trợ chứng thực cho các thiết bị, chưa hỗ trợ chứng thực cho user. Tuy nhiên nếu ta dùng chứng thực bằng Extended Authentication (XAuth)thì nó cho phép ta làm điều này. XAuth sẽ kết hợp với AAA để chứng thực cho user sau khi đã ta chứng thực cho các thiết bị. Ta cấu hình như sau:
R1(config)#crypto isakmp key cisco address 172.18.124.2 no-xauth


III. Cấu hình IPSec

Giống như cấu hình pre-share key, ta nên xác định ta cần phải làm là bao nhiêu bước. Quá trình này bao gồm 5 bước như sau:
Tạo ra transform set.
Thiết lập lifetime cho IPSec SA.
Tạo ra access-list và nó được dùng để xác định cụ thể traffic nào được mã hóa.
Tạo crypto map.
Apply crypto map này vào một interface cụ thể.
1. Tạo ra Transform set
Transform set là công cụ nhằm mục đích bảo vệ luồng thông tin. Và nó sẽ được tạo khi ta cấu hình payload authentication, payload encryption và IPSec. Giống như cấu hình chứng thực việc cấu hình transform set phải được giống nhau trên các thiết bị. Ví dụ ta phải cấu hình tên cho quá trình transform set phải giống nhau. Để cấu hình transform set ta dùng câu lệnh như sau
crypto ipsec transform-set transform-set-name {[transform1] [transform2] [transform3]}

Ở mục này ta có một số chọn lựa như sau
transform-set-name tên của quá trình
transform1 có thể chọn là ah-md5-hmac hoặc ah-sha-hmac.
transform2 có thể esp-des esp-3des hoặc esp-null.
transform3 có thể esp-md5-hmac hoặc esp-sha-hmac.
Mặc định IPSec mode đang ở dạng tunnel. Ta có thể chuyển sang dùng dạng transport bằng câu lệnh:
mode {tunnel | transport}

2. Lifetime cho IPSec SA
Ta xét thời gian lifetime cho IPSec nhằm mục đích xác nhận xem IPSec SA sẽ có hiệu lực trong khoảng thời gian là bao lâu cho đến khi nó cần được thương lượng lại để xin lại. Ở đây bạn có thể cấu hình bằng hai cách: một là trong global mode và hai là trong crypto map.
Khi cấu hình lifetime thì ta xác định hai thông số đó là: second và kilobytes. Thông số second dùng để xác định thời gian sống cho IPSec SA trước khi nó bị hết hạn.Mặc định thời gian sống là 3600 second. Thông số kilobyte xác định kích thước gói tin. Mặc định kích thước gói tin 4608000 kilobyte. Hai câu lệnh như sau.
crypto ipsec security-association lifetime seconds seconds
crypto ipsec security-association lifetime kilobytes kilobytes
3. Tạo Access list
Sau khi xét cấu hình transform set và lifetime. Việc kế tiếp ta cần phải làm là cấu hình access list để nó bảo vệ data flow của IPSec. Để cấu hình extended access list cho IPSec ta cần phải xác định một số việc như sau:
Chọn outbound traffic để bảo vệ
Xử lý inbound traffic cho việc chọn lựa traffic IPSec.
Xử lý inbound traffic cho mục đích filter những traffic cần được protect.
Ngoài ra khi ta đàm phán cho quá trình xử lý IKE, thì access list xác định khi nào chấp nhận những yêu cầu IPSec SA.

4. Tạo Crypto map
IPSec SA được thiết lập chỉ thông qua câu lệnh crypto map. Lệnh crypto map dùng để kết nối một hay nhiều trình tự lại với nhau. Một trình tự được đại diện bởi một IPSec SA. Mỗi trình tự crypto map xác định một số việc cụ thể như sau:
Traffic nào cần được bảo vệ
Luồng thông tin đến remote peer nào cần được protect
Transform nào được dùng để bảo vệ traffic
IPSec SA sẽ được thiết lập thông qua thông IKE hay là manual
Ngoài ra còn có các biến khác để dùng cho việc mô tả xác định life time cho crypto map
Tất cả mọi trình tự trong crypto map được kết nối chặt chẽ với nhau thông qua name of crypto map. Mỗi một trình tự chỉ có thể là một trong những dạng sau:
Cisco: trong trình tự này thì Cisco Encryption Technology được dùng thay thế cho IPSec.
IPSec-maunal: trong trình tự này thì IKE không được dùng để thiết lập IPSec – SA.
IPSec – isakmp: dùng IKE để thiết lập IPSec SA.
Ở đây ta chỉ bàn về cách dùng IKE để thiết lập IPSec. Ta dùng câu lệnh như sau:
crypto map map-name seq-num ipsec-isakmp
map – name: là tên dùng trong quá trình crypto map
seq – num: số thự tự trong quá trình crypto map ( 1 – 65535 ) với số nhỏ có độ ưu tiên cao hơn.
Sau khi ta đã dùng câu lệnh ở trên thì ta sẽ đăng nhập vào mode của crypto map mode. Ở đây ta xác định một số biến như sau:
match address {access-list-number | name}: câu lệnh này phải có để xác định access list nào được apply.
set peer {peer - address | hostname - peer }: xác định IPSec peer.
set transform-set transform-setname [transform-set-name2 transformset-name6]: xác định transform set được dùng trong quá trình IPSec.

5. Applied Crypto map
Sau khi bạn đã tạo ra IPSec tunnel thì bước kế tiếp là bạn phải apply nó vào một interface cụ thể. Để apply ta phải vào interface mode và dùng câu lệnh:
crypto map map-name
Vì mục đích redundancy, bạn có thể apply một crypto map vào một interface. Mặc định thì nó như sau:
Mỗi một interface có một SA database.
IP address của local interface được dùng như là local address được dùng cho IPSec traffic.
Nếu như muốn dùng crypto map trên nhiều interface bạn cần phải xác định interface đó. Ta có thể làm như sau:
Mỗi interface sẽ tương ứng với một IPSec SA database được thiết lập vào một thời điểm. Còn các traffic nào được chia sẻ trên tất cả interface thì nó dùng chung một crypto map.
IP address của interface được định nghĩa thường được dùng trong trường hợp này là local ip address và nó được dùng IPSec traffic tại điểm xuất phát ban đầu và đích cần đến có chia sẽ dùng chung một crypto map set.
crypto map map-name local-address local-id
Để định nghĩa một interface ta dùng câu lệnh như trên ở global mode với map-name là tên của crypto map và local-id là IP address của interface đang được định nghĩa.

Cấu hình Crypto IPSec với tên là test và Crypto map với tên là test1 như sau
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#crypto ipsec tramsform-set test esp-des
R1(cfg-crypto-trans)#exit
R1(config)#access-list 100 permit ip 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255
R1(config)#cryto map test1 100 ipsec-isakmp
R1(config-crypto-map)#match address 100
R1(config-crypto-map)#set transform-set test
R1(config-crypto-map)#set peer 172.18.124.2
R1(config-crypto-map)#exit
R1(config)#interface s0/0
R1(config-if)#crypto map test1
R1(config-if)#^Z
R1#

R2#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#crypto ipsec tramsform-set test esp-des
R2(cfg-crypto-trans)#exit
R2(config)#access-list 100 permit ip 10.10.10.0 0.0.0.255 10.10.20.0 0.0.0.255
R2(config)#cryto map test1 100 ipsec-isakmp
R2(config-crypto-map)#match address 100
R2(config-crypto-map)#set transform-set test
R2(config-crypto-map)#set peer 172.18.124.1
R2(config-crypto-map)#exit
R2(config)#interface s1/0
R2(config-if)#crypto map test1
R2(config-if)#^Z
R2#
Ngoài ra nếu ta muốn thực hiện quá trình chứng thực cho user bằng XAuth thì phải xác nhận user và group nào có thẩm quyền. Lúc này ta cần dùng AAA để thực hiện quá trình này và dùng crypto map để apply AAA ta đã tạo ra.

IV. Kiểm tra và thẩm định quá trình hoạt động của IPSec.

- Dùng lệnh show crypto isakmp sa cho ta biết các tất cả active SA đang có trên thiết bị.
R1#show crypto isakmp sa
dst src state conn-id slot
172.18.124.2 172.18.124.1 QM_IDLE 82 0
- Muốn xem cấu hình transform set thì dùng câu lệnh show crypto ipsec transform-set
R1#show crypto ipsec transform-set
Transform set test: { esp-des }
will negotiate = { Tunnel, }
- Kiểm tra xem một IPSec SA đang hoạt động thì dùng lệnh show crypto ipsec sa
R1#show crypto ipsec sa
interface: Serial0/0
Crypto map tag: test1, local addr. 10.1.1.1
local ident (addr/mask/prot/port):
(10.1.1.1/255.255.255.255/0/0)
remote ident (addr/mask/prot/port):
(10.1.1.2/255.255.255.255/0/0)
current_peer: 10.1.1.2
PERMIT, flags={origin_is_acl,}
#pkts encaps: 10, #pkts encrypt: 10, #pkts digest 10
#pkts decaps: 10, #pkts decrypt: 10, #pkts verify 10
#send errors 10, #recv errors 0
local crypto endpt.: 10.1.1.1, remote crypto endpt.: 10.1.1.2
path mtu 1500, media mtu 1500
current outbound spi: 20890A6F
inbound esp sas:
spi: 0x257A1039(628756537)
transform: esp-des ,
in use settings ={Tunnel, }
slot: 0, conn id: 26, crypto map: test1
sa timing: remaining key lifetime (k/sec): (4607999/90)
IV size: 8 bytes
replay detection support: Y
inbound ah sas:
outbound esp sas:
spi: 0x20890A6F(545852015)
transform: esp-des ,
in use settings ={Tunnel, }
slot: 0, conn id: 27, crypto map: test1
sa timing: remaining key lifetime (k/sec): (4607999/90)
IV size: 8 bytes
replay detection support: Y
outbound ah sas:

Tham khao từ: http://thegioimang.org/