Cơ chế hoật động của Internet Key Exchange IKE Như đã nói ở trên giao thức IKE sẽ có chức năng trao đổi key giữa các thiết bị tham gia VPN và trao đổi chính sách an ninh giữa các thiết
Trang 1Cơ chế hoạt động và cách cấu hình VPN IP Sec
trên router CiscoPhần I Giới thiệu về cơ chế hoạt động của bộ giao thức IPSec
1 Giao thức Ipsec
Ipsec có 3 tầng giao thức chính
- Internet Key Exchange ( IKE ) : Giúp cho các thiết bị tham gia VPN trao đổi với nhau về thông tin an ninh như mã hóa thế nào ? Mã hóa bằng thuật toán gì ? Bao lâu mã hóa 1 lần IKE có tác dụng tự động thỏa thuận các chính sách an ninh giữa các thiết bị tham gia VPN Do đó IKE giúp cho Ipsec có thể áp dụng cho các hệ thống mạng mô hình lớn
Trong quá trình trao đổi key IKE dùng thuật toán mã hóa bất đối xứng gồm bộ Public key và Private Key để bảo vệ việc trao đổi key giữa các thiết bị tham gia VPN
- Encapsulation Security Payload (ESP) : Có tác dụng xác thực
( authentication ) , mã hóa ( encrytion ) và đảm bảo tính trọn vẹn dữ liệu
( securing of data ) Đây là giao thức được dùng phổ biến trong việc thiết lập IPSec
- Authentication Header ( AH ) : Có tác dụng xác thực , AH thì thường ít được
sử dụng vì nó đã có trong giao thức ESP
IPSec có những phương pháp xác thực như HMAC , MD5 , SHA-1
3 Trước khi trao đổi key để thiết lập 1 kênh truyền ảo (VPN-Ipsec) IPSEC
sẽ làm nhiệm vụ là xác thực xem mình đang trao đổi với ai ?
Các phương pháp Peer Authentication :
Trang 24 Cơ chế hoật động của Internet Key Exchange ( IKE )
Như đã nói ở trên giao thức IKE sẽ có chức năng trao đổi key giữa các thiết bị tham gia VPN và trao đổi chính sách an ninh giữa các thiết bị Và nếu không có giao thức này thì người quản trị phải cấu hình thủ công
Và những chính sách an ninh trên những thiết bị này được gọi là SA (Security Associate)
Do đó các thiết bị trong quá trình IKE sẽ trao đổi với nhau tất cả những SA mà
nó có Và giữa các thiết bị này sẽ tự tìm ra cho mình những SA phù hợp với đối tác nhất
Những key được trao đổi trong quá trình IKE cũng được mã hóa và những key này sẽ thay đổi theo thơi gian (generate key) để tránh tình trạng bruteforce của Attacker
Và dứoi đây là các giao thức xác thực cũng như mã hóa key trong quá trình IKE
Oakley (Tham khao thêm trên RFC 2412) , ISAKMP (RFC 2408) , Skeme Giao thức IKE sử dụng UDP port 500
5 Các giai đoạn hoạt động của IKE (IKE Phases)
- IKE Phases 1 (Bắt buộc xảy ra trong quá trình IKE)
Bước 1 : Xác thực giữa các thiết bị tham gia VPN (Authentication the peers) Bước 2 : Trao đổi các SA
Và Phases 1 này có 2 chế độ hoạt động là Main mode (Cần 6 mess để hoàn thành các bước 1&2) và Aggressive mode (Cần 3 mess đển hoàn thành các bước 1&2)
- IKE Phases 1.5 (Không bắt buộc)
Giao đoạn này có tác dụng cấp phát địa chỉ IP LAN , DNS thông qua DHCP và xác thực User (Authentication User ) Giao thức được gọi trong quá trình này là Xauth (Extended Authentication)
- IKE Phases 2 (Bắt buộc phải xảy ra )
Trang 3Sau khi trải qua Phase 1& 1.5 lúc này giữa các thiết bị đã có đầy đủ các thông tin về nhau như chính sách mã hóa , xác thực ( SA ) và key
Và nhờ IKE thì giữa các thiết bị đã xây dựng được 1 kênh truyền ảo an ninh Đến đây giữa các thiết bị lại tiếp tục trao đổi cho nhau 1 SA khác ( mọi người chú ý khúc này )
Cái SA được trao đổi lúc này là chính sách của giao thức Ipsec (chính sách an ninh đóng gói dự liệu ) nó khác với SA của giao thức IKE ( làm thế nào để xây dựng 1 kênh an toàn )
Cái SA của Ipsec này nó sẽ trao đổi với nhau việc mã hóa đóng gói dự liệu theo ESP hay AH , nó hoạt động theo dạng tunel mode hay transports mode , thời gian mã hóa là bao lâu ?
Đây là mã hóa dự liệu chứ không còn là mã hóa trao đổi khóa (key) như diễn ra trong quá trình IKE
Đến lúc này nếu muốn trao đổi với ai thì nó sẽ trao đổi SA IPSec với người đó
và dữ liệu được gửi trên đường truyền được mã hóa dựa vào SA Ipsec này
Vậy là trong phần 5 tôi đã trình bày 3 bước chính để tạo ra 1 kênh truyền ảo an ninh (VPN Ipsec)
6 Các chức năng khác của IKE giúp cho IKE hoạt động tối ưu hơn bao gồm :
- Dead peer detection ( DPD ) and Cisco IOS keepalives là những chức năng bộ đếm thời gian Nghĩa là sau khi 2 thiết bị đã tạo được VPN IPsec với nhau rồi thì nó sẽ thường xuyên gửi cho nhau gói keepalives để kiểm tra tình trạng của đối tác Mục đích chính để phát hiện hỏng hóc của các thiết bị Thông thường các gói keepalives sẽ gửi mỗi 10s
- Hỗ trợ chức năng NAT-Traversal : Chức năng này có ý nghĩa là nếu trên
đường truyền từ A tới B nếu có những thiết bị NAT or PAT đứng giữa thì lúc này IPSec nếu hoạt động ở chế độ tunel mode và enable chức năng NAT-
Trasersal sẽ vẫn chuyển gói tin đi được bình thường
Tại sao IPSec chỉ hoạt động ở tunel mode mà không hoạt động ở tranports mode thì tôi sẽ giải thích kỹ trong những đoạn sau
Lưu ý : Chức năng NAT-T bắt đầu được Cisco hỗ trợ tự phiên bản IOS Release
122.2(13)T
Tại sao phải hỗ trợ chức năng NAT-T thì các packet mới tiếp tục đi được ?
Các bạn chú ý phần trên tôi đã trình bày Khi thực hiện quá trình mã hóa bằng
Trang 4ESP thì lúc này các source IP , port và destination IP, port đều đã được mã hóa
và nằm gọn tron ESP Header Như vậy khi tất cả các thông tin IP và Port bị mã hóa thì kênh truyền IPSec không thể diễn ra quá trình NAT
Do đó NAT Traversal ra đời trong quá trình hoạt động của IKE nhằm phát hiện
và hỗ trợ NAT cho Ipsec
Các dự liệu sẽ không bị đóng gói trực tiếp bỏi giao thức IP mà nó sẽ đóng gói thông qua giao thức UDP Và lúc này các thông tin về IP và Port sẽ nằm trong gói UDP này
- Chức năng Mode Configuration :
Chức năng này có tác dụng pushing các chính sách bảo mật cũng như thông tin
về IP , DNS , Gateway cho người dùng di động khi họ quay VPN vào hệ
Xauth sẽ cho phép phương thức AAA (Authentication , Authorization ,
Accounting) hoạt động đối với việc xác thực user Các bạn cũng nên lưu ý phần này Xauth không đè lên IKE mà việc xác thực của giao thức Xauth này là xác thực người dùng chứ không phải quá trình xác thực diễn ra trong Phares 1
Như vậy trong phần I tôi đã giới thiệu cơ chế hoạt động của VPN Ipsec và đi sâu vào bộ giao thức đầu tiên là IKE Trong các phần kế tiếp tôi sẽ trình bày kỹ hơn về cơ chế hoạt động của ESP và AH Sau đó là cấu hình Router trong 1 sơ
Trang 5Khi bộ giao thức Ipsec hoạt động ở mode này thì IP header vẫn được giữ
nguyên và lúc này giao thức ESP sẽ chèn vào giữa payload và IP header của gói tin
Giao thức này rất hay được sử dụng khi những người quản trị mạng có tạo thêm
1 tunnel GRE (Generic Routing Encapsulation) Còn tunnel GRE là gì tôi sẽ giải thích trong một TUT khác
Tất cả gói tin được mã hóa bởi Ipsec đều là khóa đối xứng (symetric key)
2 Tổng quan ESP và AH Header
bmuht_gpj.00012_cc25e0917bf944b611f306de4a8b002a/8/1/7002/daolpu/enilnoavh/ten.enilnoavh//:ptth
Đây là hình minh họa việc đóng gói dự liệu bằng 2 protocol Esp và AH
Trên cùng là gói dữ liệu nguyên thủy bao gồm Data và Ip Header
- Nếu sử dụng giao thức ESP :
Thì giao thức ESP sẽ làm công việc là mã hóa ( encryption ) , xác thực
( authentication ) , bảo đảm tính trọn vẹn của dữ liệu ( Securing of data ) Sau khi đóng gói xong bằng ESP mọi thông tin về mã hóa và giải mã sẽ nằm trong ESP Header
Các thuật toán mã hóa bao gồm DES , 3DES , AES
Các thuật toán để xác thực bao gồm MD5 hoặc SHA-1
ESP còn cung cấp tính năng anti-relay để bảo vệ các gói tin bị ghi đè lên nó
Trang 63 AH xác thực và đảm bảo tính trọn vẹn dự liệu
Dưới đây là hình minh họa về cơ chế xác thực của giao thứ AH
[img]http:/bmuht_gpj.00012_f307be307198a0fd9501671f45089a92/8/1/7002/daolpu/enilnoavh/ten.enilnoavh//:ptthr/> Bước thứ 1 : Giao thức AH sẽ đem gói
dữ liệu ( packet ) bao gồm payload + Ip header + Key
Cho chạy qua 1 giải thuật gọi là giải thuật Hash và cho ra 1 chuỗi số Các bạn nhớ đây là giải thuật 1 chiều , nghĩa là từ gói dữ liệu + key = chuỗi số Nhưng
từ chuỗi số không thể hash ra = dữ liệu + key
Và chuỗi số này sẽ đuợc gán vào AH header
Bước thứ 2 : AH Header này sẽ được chèn vào giữa Payload và Ip Header và chuyển sang phía bên kia
Đương nhiên các bạn cũng nhớ cho rằng việc truyền tải gói dự liệu này đang chạy trên 1 tunel mà trước đó quá trình IKE sau khi trao đổi khóa đã tạo ra
Bước thứ 3 : Router đích sau khi nhận được gói tin này bao gồm IP header +
AH header + Payload sẽ được chạy qua giải thuật Hash 1 lần nữa để cho ra 1 chuỗi số
Bước thứ 4 : So sánh chuỗi số nó vừa tạo ra và chuỗi số của nó nếu giống nhau thì nó sẽ chấp nhận gói tin
Nếu trong quá trình truyền gói dữ liệu 1 attacker sniff nói tin và chỉnh sửa nó dẫn đến việc gói tin bị thay đổi về kích cỡ , nội dung thì khi đi qua quá trình hash sẽ cho ra 1 chuỗi số khác chuỗi số ban đầu mà router đích đang có Do đó gói tin sẽ bị drop
Thuật toán hash bao gồm MD5 và SHA-1
Và trong trừong hợp này IPSec đang chạy ở chế độ trasports mode
4 Giao thức ESP
Phía dưới đây là cơ chế mã hóa gói dữ liệu bằng giao thức ESP
[img]http://hvaonline.bmuht_gpj.00012_9ff8ac38d93b61a8a394d6a1042bc958/8/1/7002/daolpu/enilnoavh/ten.enilnoavh//:ptthEsp là giao thức hỗ trợ cả xác thực và mã hóa
Trang 7Phía trên là gói dự liệu ban đầu và ESP sẽ dùng 1 cái key để mã hóa toàn bộ dữ liệu ban đầu Và trường hợp trên là Ipsec đang chạy ở chế độ Tunel mode nên ngoài ESP header ra nó sẽ sinh ra 1 Ip Header mới không bị mã hóa để có thể truyền đi trong mạng Internet
Như vậy trong phần này tôi đã giới thiệu với các bạn về cơ chế hoạt động của 2 protocol ESP và AH
Các bạn lưu ý quá trình xác thực và mã hóa của ESP và AH chỉ diễn ra sau khi quá trình IKE hòan thành
Ở chương này tôi không muốn đi sâu vào phân tích các thuật toán mã hóa vì mục đích của tôi trong TUT này là trình bày cho các bạn hiểu cơ chế hoạt động của IPSEC và cách cấu hình IPSEC VPN trên Router Cisco
Trong phần cấu hình phía trên mình có chú thích thêm 1 phần quan trọng: Đó là appy cái crypto map vào Interface sử dụng để kết nối VPN
Nếu không có bước này Trong quá trình debug các bạn sẽ thấy thiếu những dòng màu đỏ phía trong cái trích dẫn ngay bên dưới
Sử dụng lệnh show crypto map
Trang 8Khi các bạn show crypto ipsec sa ( Kiểm tra việc trao đổi các Security
Association ) của quá trình đóng gói packets giữa 2 phía, các bạn sẽ thấy chống trơn
Nhưng khi luồng VPN đã tạo thành công khi các bạn show crypto ipsec sa các bạn sẽ thấy như sau:
R_MGW_SG.ACB.HN#sh crypto ipsec sa
interface: GigabitEthernet0/1
Crypto map tag: VPN-SG-HN, local addr 172.31.1.218
protected vrf: (none)
local ident (addr/mask/prot/port): (172.16.0.0/255.255.128.0/0/0)
remote ident (addr/mask/prot/port): (172.16.128.0/255.255.252.0/0/0)
current_peer 10.252.15.6 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 12699, #pkts encrypt: 12699, #pkts digest: 12699
#pkts decaps: 8707, #pkts decrypt: 8707, #pkts verify: 8707
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 172.31.1.218, remote crypto endpt.: 10.252.15.6
path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/1
current outbound spi: 0xF4B4F10(256593680)
inbound esp sas:
spi: 0x766F7231(1987015217)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 3005, flow_id: Onboard VPN:5, crypto map: VPN-SG-HN
sa timing: remaining key lifetime (k/sec): (4442319/3469)
Trang 9transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 3006, flow_id: Onboard VPN:6, crypto map: VPN-SG-HN
sa timing: remaining key lifetime (k/sec): (4441189/3469)
PERMIT, flags={origin_is_acl,}
#pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
#pkts decaps: 6, #pkts decrypt: 6, #pkts verify: 6
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 0, #recv errors 0
local crypto endpt.: 172.31.1.218, remote crypto endpt.: 10.252.15.6 path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/1
current outbound spi: 0x7675CCC0(1987431616)
Trang 10inbound esp sas:
spi: 0x2C2DE7CF(741205967)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 3003, flow_id: Onboard VPN:3, crypto map: VPN-SG-HN
sa timing: remaining key lifetime (k/sec): (4581032/62)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
spi: 0x9875DB42(2557860674)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 3002, flow_id: Onboard VPN:2, crypto map: VPN-SG-HN
sa timing: remaining key lifetime (k/sec): (4427799/3596)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 3004, flow_id: Onboard VPN:4, crypto map: VPN-SG-HN
sa timing: remaining key lifetime (k/sec): (4581033/62)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
spi: 0x7675CCC0(1987431616)
transform: esp-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 3001, flow_id: Onboard VPN:1, crypto map: VPN-SG-HN
sa timing: remaining key lifetime (k/sec): (4427799/3596)
Trang 12Trước khi đi vào chi tiết cấu hình của 3 Router tôi đưa ra 1 ví dụ cụ thể để các bạn dễ hình dung
Chúng ta có 3 chi nhánh gồm HN (R1) , ĐN (R2) và HCM (R3) Việc trao đổi
dự liệu giữa các TP này diễn ra thường xuyên và liên tục
Tất cả dữ liệu được truyền từ ĐN vào HCM là những dữ liệu quan trọng và yêu cầu đặt ra là khi dữ liệu chạy trên đường truyền từ ĐN và HCM phải được mã hóa và bảo vệ
Trong mô hình lab này Tôi sẽ cấu hình VPN IPSEC chạy trên đoạn từ serial 1/1 của Router 2 tới Serial 1/1 của Router 3
Nghĩa là khi có luồng dữ liệu chạy trên link này nếu đúng peer -1- thì cơ chế VPN sẽ bắt đầu hoạt động
Trước tiên là cấu hình Router 1 ( HN ) Trong con Router này thì không có gì đáng chú ý trong vấn đề VPN/IPSEC Nhưng tôi cũng sẽ giải thích thêm 1 số vấn đề để các bạn dễ nắm bắt Phần giải thích sẽ là chữ màu đỏ được in đậm
Config Router R1 Hà Nội wrote:
R1#sh run
Building configuration
Current configuration : 3499 bytes
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
Trang 13multilink bundle-name authenticated
crypto pki trustpoint TP-self-signed-4294967295
Trang 14B08CF30C B3C19056 50DC2B37 5E7769F2 AB8F8CE4 464DF6BE
BB725A97 29A9E629
A323D36D E01FC307 4C61F961 C0AC5C83 3134CFE4 3FD2347A
289F21DC E0F7ED40
D9B30203 010001A3 62306030 0F060355 1D130101 FF040530 030101FF 300D0603
551D1104 06300482 02523130 1F060355 1D230418 30168014 DE1009DC 2F7D3708
04170326 E5336218 6052B3D3 301D0603 551D0E04 160414DE 1009DC2F 7D370804
Trang 15ip ospf authentication message-digest \\ Trong khi routing bằng OSPF tôi có authentication giữa các neighbor bằng key là “ thang “
ip ospf message-digest-key 1 md5 thang
Trang 16service timestamps debug datetime msec
service timestamps log datetime msec
multilink bundle-name authenticated
crypto isakmp policy 1 \\ Chúng ta đang bắt đầu tạo policy cho quá trình IKE
mà tôi đã giải thích trong 2 chương trước đó
encr aes \\ Chúng ta sẽ mã hóa bằng AES
authentication pre-share \\ Xác thực bằng pre-share key
Trang 17group 2
crypto isakmp key 6 cisco address 11.0.0.2 \\ Và key để trao đổi giữa 2 đầu Đà Nẵng và HCM là “ cisco “ IP 11.0.0.2 chính là IP của Serial 1/1 HCM hay còn gọi là peer của Router Đà Nẵng
Việc xác định peer này là vô cùng quan trọng vì người quản trị phải biết được mục đích chúng ta đang định giao tiếp với ai và quá trình VPN sẽ xảy ra khi dữ liệu đi từ đâu tới đâu
crypto ipsec transform-set R2 esp-aes esp-sha-hmac \\ Đến thời điểm này chúng
ta đã xong phần thiết lập các chính sách trong quá trình IKE Trong command này chúng ta đang tiến hành khởi tạo policy cho quá trình đóng gói dữ liệu Đây
là những chính sách mà chúng ta quy định cho việc gói dữ liệu sẽ được bao bọc bởi cơ chế mã hóa gì
crypto map VPN_TO_R3 10 ipsec-isakmp \\ Command này là thao tác chúng ta chính thức thông báo cho Router ĐN apply các chính sách đã khởi tạo quá trình IKE
set peer 11.0.0.2 \\ Và đối tượng để thiết lập quá trình VPN/IPSEC này là IP 11.0.0.2 của Router HCM
set transform-set R2 \\ Chính thức apply policy của cơ chế IPSEC
match address 101 \\ Apply luồng traffic được mã hóa Và luồng traffic được mã hóa này chúng ta sẽ tạo ra nó bằng 1 Access list