[Document] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
04/01/2007 14:02:59 (+0700) | #1 | 34240 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
Đầu xuân năm mới tôi viết 1 TUT để tặng anh em cũng như để có điều kiện trao đổi trau dồi thêm kiến thức với mọi người .
Bài viết này tôi viết riêng cho HVA do đó mọi việc sao chép vui lòng ghi rõ nguồn từ HVAonline.net
Bài viết phía dưới là những kiến thức nhỏ bé của tôi muốn chia sẻ và trao đổi cùng các bạn . Trong bài viết tôi đã có gắng hết sức để dùng các từ tiếng Việt thay vì dùng tiếng Anh và nhất thiết sẽ có những sai sót mong các bạn bỏ qua .
Tài liệu tham khảo : Implementing Secure Converged Wide Area Networks của Cisco
Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco
Phầ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
2. Ipsec có 2 dạng là :
- Transports mode : Dữ liệu (Layer4 Payload) được mã hóa sẽ nằm trong ESP header và ESP sẽ chèn vào giữa Layer 2 header và layer 3 header
- Tunnel mode : Dữ liệu sẽ được mã hóa và đóng gói thành 1 IP Header mới với source và des IP mới .
IPSec có những phương pháp mã hóa như DES (Data Encrution Standard) , 3DES , AES (Advance Encrytion Standar)
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 :
- Username password
- OTP (One time password)
- Biometric (Xác thực bằng sinh học)
- Preshared keys
- Digital certificate (chữ ký số) phương pháp này thường được dùng trong chính phủ điện tử .
4. 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 )
Sau 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 ESP 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ệ thống .
Ngoài ra Cisco có cung cấp giải pháp cho việc này đó là Easy VPN . Nhưng trong phạm vi bài này tôi sẽ không đi sâu về vấn đề này .
- Chức năng cuối cùng IKE hỗ trợ mà tôi muốn giới thiệu với các bạn đó là Xauth ( Tôi đã giới thiệu sơ trong phares 1.5 )
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ơ đồ cụ thể .
Hy vọng bài viết này sẽ giúp các bạn hiểu hơn phần nào về giao thức IP Sec và cách thiết lập VPN Ipsec sẽ được trình bày ở các phần kế tiếp ......
Thangdiablo |
|
Hãy sống có Tuệ Giác. |
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
04/01/2007 14:39:26 (+0700) | #2 | 34247 |
Mr.Khoai
Moderator
|
Joined: 27/06/2006 01:55:07
Messages: 954
Offline
|
|
khoai xin phép có vài ý kiến về bài viết của anh thangdiablo:
1. Mã hóa đối xứng là symmetric encryption, không phả symmetrical :~)
2. Bước IKE theo khoai nghĩ là một bước phải làm để trao đổi khóa. Và bước này sẽ diễn ra trước khi chọn một trong 2 protocols ESP hoặc AH, và một trong 2 mode transport hay tunnel. Cá nhân khoai anh thangdiablo không nên liệt chung IKE và ESP, AH để tránh gây cảm nhận là 3 protocols này ở cùng một "level".
Cám ơn anh thangdiablo, bài viết rất chi tiết.
khoai |
|
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
04/01/2007 23:36:23 (+0700) | #3 | 34292 |
|
hoalacanh
Member
|
0 |
|
|
Joined: 03/09/2006 16:01:23
Messages: 51
Offline
|
|
chào Anh thangdiablo Pro!!! bài viết mới chỉ bắt đầu nhưng rất hay. mình hy vọng được học hỏi nhiều ở topic này. xin cảm ơn |
|
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
05/01/2007 04:54:15 (+0700) | #4 | 34357 |
|
dabu
Elite Member
|
0 |
|
|
Joined: 03/03/2003 03:31:20
Messages: 226
Offline
|
|
Dù chưa hiểu hết nhưng thấy rất hay và có ích !!! Tiếp đi lão ) |
|
It's time to build a new network. |
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
05/01/2007 14:14:40 (+0700) | #5 | 34475 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
Mr.Khoai wrote:
khoai xin phép có vài ý kiến về bài viết của anh thangdiablo:
1. Mã hóa đối xứng là symmetric encryption, không phả symmetrical :~)
2. Bước IKE theo khoai nghĩ là một bước phải làm để trao đổi khóa. Và bước này sẽ diễn ra trước khi chọn một trong 2 protocols ESP hoặc AH, và một trong 2 mode transport hay tunnel. Cá nhân khoai anh thangdiablo không nên liệt chung IKE và ESP, AH để tránh gây cảm nhận là 3 protocols này ở cùng một "level".
Cám ơn anh thangdiablo, bài viết rất chi tiết.
khoai
Hello Mr.Khoai phần 1 và 2 tớ viết là giới thiệu các chồng giao thức tồn tại trong IPSec . Tớ đã sắp xếp thứ tự các giao thức ESP và AH nằm dưới IKE .
Và tớ cũng có ghi rõ quá trình IKE là quá trình bắt buộc phải xảy ra trước khi diễn ra quá trình mã hóa gói dữ liệu .
Có điều trong quá trình diễn ra của IKE cụ thể là giữa Phases 1 và 2 thì có Phases 1.5 xen vào giữa .
Quá trình Phases 1.5 này là quá trình Xauth (AAA) và đẩy pusing các thông tin cấu hình cho user .
Do đó nó có thể xảy ra hay không xảy ra là tuy thuộc vào tình hình cụ thể và quyết định của admin.
Thanks Mr Khoai đã góp ý .
Các phần kế tiếp sẽ có những cấu hình cụ thể và các debug cụ thể . Hy vọng sẽ có nhiều cái để bàn .
Thân mên |
|
Hãy sống có Tuệ Giác. |
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
08/01/2007 15:35:25 (+0700) | #6 | 34986 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
Bài viết này tôi viết riêng cho HVA do đó mọi việc sao chép vui lòng ghi rõ nguồn từ HVAonline.net
Phần 2 Cơ chế hoạt động của 2 protocol ESP và AH
Bộ giao thức Ipsec thì ngoài IKE còn có ESP và AH là 2 giao thức chính trong việc mã hóa&xác thực dữ liệu .
1. Khái quát
ESP sử dụng IP protocol number là 50 (ESP được đóng gói bởi giao thức IP và trường protocol trong IP là 50 )
AH sử dụng IP protocol number là 51 (AH được đóng gói bởi giao thức IP và trường protocol trong IP là 51 )
Bộ giao thức Ipsec hoạt động trên 2 mode chính là Tunel Mode và Transport Mode
- Tunel Mode
Khi bộ giao thức Ipsec hoạt động ở mode này thì sau khi đóng gói dữ liệu và giao thức ESP mã hóa toàn bộ payload , frame header , ip header thì nó sẽ thêm 1 IP header mới và gói packet trước khi forward đi .
- Transports Mode
Khi 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ó.
- Nếu sử dụng giao thức AH
Thì giao thức AH chỉ làm công việc xác thực ( authentication ) và bảo đảm tính trọn vẹn dự liệu . Giao thức AH không có chức năng mã hóa dự liệu . Do đó AH ít được dùng trong IPSec vì nó không đãm bảo tính an ninh .
3 . 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 .
Phí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 .
Phần cấu hình sẽ được trình bày ở phần 3
Còn tiếp ….
|
|
Hãy sống có Tuệ Giác. |
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
11/01/2007 04:02:36 (+0700) | #7 | 35471 |
prof
Moderator
|
Joined: 23/11/2004 01:08:55
Messages: 205
Offline
|
|
Hello thangdiablo,
Bài viết của bạn rất hay. Tuy nhiên, có một số điểm, prof nghĩ, nếu được đào sâu thêm một chút, sẽ hoàn thiện hơn.
- 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ó.
- Nếu sử dụng giao thức AH
Thì giao thức AH chỉ làm công việc xác thực ( authentication ) và bảo đảm tính trọn vẹn dự liệu . Giao thức AH không có chức năng mã hóa dự liệu . Do đó AH ít được dùng trong IPSec vì nó không đãm bảo tính an ninh .
Lý do AH có khả năng cung cấp cơ chế xác thực và bảo đảm tính toàn vẹn (integrity) của dữ liệu là vì AH Header chứa một "chữ ký số" -1- được gọi là giá trị kiểm tra tính toàn vẹn (Integrity Check Value-ICV). Thực chất nó là một giá trị băm được dùng để kiểm tra xem liệu gói tin có bị thay đổi trên đường truyền hay không. Vì AH sử dụng IP header để tính toán ICV nên chúng ta có thể chắc chắn rằng địa chỉ nguồn của gói tin là xác thực và gói tin này xuất phát từ đúng nơi gửi.
Hơn nữa, AH cũng sử dụng các giá trị sequence number hỗ trợ việc chống lại kiểu tấn công phát lại (replay attack). Vì các thiết bị truyền thông sử dụng giá trị này để theo dõi dòng dữ liệu trao đổi, một kẻ tấn công với ý định chiếm quyền truy cập vào VPN không thể gửi lại gói tin mà hắn "bắt" được.
Ngoài ra, một vấn đề cần lưu tâm ở đây, đó là AH xác thực gói tin dựa vào thông tin IP header. Do vậy, nó sẽ không tương thích với các thay đổi do cơ chế NAT mang lại. Vì giá trị ICV của AH đã được tính toán trước NAT nên khi gói tin được gửi tới đích, việc kiểm tra tính toàn vẹn sẽ thất bại(!)
Mặt khác, vì AH không hỗ trợ bảo vệ tính mật (confidentiality) của dữ liệu trong các gói tin, nên nó sẽ không phải thực hiện tính toán nhiều để mã hoá các gói tin, do đó công việc xử lý và đóng gói các gói tin sẽ dễ dàng và nhanh chóng hơn. Đây là những đặc điểm góp phần làm cho AH trở thành một giải pháp hợp lý cho những nơi chỉ cần bảo toàn và xác thực thông tin địa chỉ IP và cần hiệu năng cao.
Để có thể xem thông tin chi tiết về một AH packet, bạn có thể dùng tcpdump để thu bắt thông tin về AH traffic. Khi đó, bạn sẽ thấy phần payload của gói tin sẽ không được mã hoá vì AH không hỗ trợ cơ chế này.
....
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
Esp là giao thức hỗ trợ cả xác thực và mã hóa .
Phí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 .
....
Cách thức hoạt động của ESP có khác biệt đôi chút phụ thuộc vào chế độ làm việc của IPSec. Trong chế độ Transport, ESP chỉ đơn thuần thêm phần header của bản thân nó vào sau phần IP header và mã hoá toàn bộ phần còn lại của gói tin từ tầng 4 trở lên. Nếu trong quá trình thương lượng khởi tạo một IPSec connection có chỉ định sử dụng dịch vụ xác thực của ESP, khi đó ESP sẽ thêm một phần (trailer) chứa thông tin ICV để đảm bảo tính toàn vẹn và tính xác thực. Không giống với AH, ESP ICV không tính toán dựa trên các thông tin về IP header.
ESP là giải pháp cho phép IPSec chạy trên hệ thống có xảy ra quá trình NAT với điều kiện IPSEC được thiết lập ở chế độ tunnel -2-. Tuy nhiên trong chế độ transport, ESP và NAT không tương thích với nhau vì các thông tin của phần header của gói tin đã bị NAT thay đổi. Khi NAT thực hiện thay đổi phần thông tin về IP, nó cũng sẽ tính lại giá trị checksum trong TCP header. Và bởi vì TCP checksum được tính toán không chỉ dựa vào TCP header, mà nó còn dựa vào các thông tin từ IP header, như địa chỉ nguồn/đích của gói tin nên NAT đã phá vỡ tính toàn vẹn của gói tin. Trong chế độ Transport ESP, toàn bộ TCP header đã được mã hoá, NAT box sẽ không thể tính toán lại TCP checksum. (Vấn đề tương tự đối với UDP packets khi UDP checksum được tính đến). Kết quả là trước khi giải mã, gói tin sẽ bị hủy vì không bảo đảm tính toàn vẹn. Vấn đề này có thể được giải quyết nếu như không đụng đến TCP checksum trong mọi trường hợp.
Trong chế độ Tunnel ESP, NAT hoàn toàn được tương thích vì toàn bộ gói tin nguồn bao gồm các thông tin về IP và thông tin ở tầng 4 được đóng gói và do đó không bị xử lý bởi NAT. Vì thông tin về IP, TCP header, TCP checksum không bị thay đổi trong chế độ Tunnel ESP nên gói tin sẽ được giải mã và thoả mãn tính toàn vẹn. Tuy nhiên, mặc dù ESP traffic trong chế độ Tunnel có thể tương thích với NAT, bạn sẽ gặp phải các vấn đề liên quan đến NAT khi thương lượng các tham số cho IPSec connection. Chẳng hạn, one-to-many NAT (thường được hiểu là PAT) sẽ sửa đổi tham số cổng nguồn của một outbound IKE packet, dẫn đến giá trị cổng UDP 500 dành cho IKE bị thay đổi, từ đó dẫn đến việc thất bại khi phân phối khoá cho các tham số của IPSec session.
Một vấn đề còn đang tranh cãi nữa là khả năng xác thực của ESP. Như ta đã biết, ESP có khả năng cung cấp cơ chế xác thực, nhưng giá trị băm mà nó sử dụng được sinh ra dựa trên toàn bộ gói tin ngoại trừ phần IP header và phần authentication trailer. Điều này giúp cho ESP authentication tương thích với NAT, nhưng việc thiếu xác thực của IP header sẽ không đảm bảo được nguồn gốc của gói tin. May thay, trong hầu hết các cài đặt, việc kiểm tra tính xác thực cho phần IP payload -3- cũng đủ để nói lên nguồn gốc của gói tin này!
Chúc vui.
-------------
-1- và -3-: chỉnh sửa theo góp ý của alice.
-2-: chỉnh sửa theo góp ý của father_nghia_den. |
|
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
11/01/2007 12:53:48 (+0700) | #8 | 35569 |
|
alice
Elite Member
|
0 |
|
|
Joined: 20/01/2005 22:23:24
Messages: 87
Location: Wonderland
Offline
|
|
Bài bổ sung của prof rất tốt, alice chỉ nghĩ có thể bài viết sẽ dễ hiểu hơn nếu thay đổi vài điểm về thuật ngữ. )
prof wrote:
Lý do AH có khả năng cung cấp cơ chế xác thực và bảo đảm tính toàn vẹn (integrity) của dữ liệu là vì AH Header chứa một chữ ký số (Digital Signature - DS) được gọi là giá trị kiểm tra tính toàn vẹn (Integrity Check Value-ICV). Thực chất nó là một giá trị băm được dùng để kiểm tra xem liệu gói tin có bị thay đổi trên đường truyền hay không. Vì AH sử dụng IP header để tính toán DS nên chúng ta có thể chắc chắn rằng địa chỉ nguồn của gói tin là xác thực và gói tin này xuất phát từ đúng nơi gửi.
Dùng từ ICV là đủ, tránh dùng từ DS. ICV nói chung không phải là DS và thực tế không phải là DS.
prof wrote:
Cách thức hoạt động của ESP có khác biệt đôi chút phụ thuộc vào chế độ làm việc của IPSec. Trong chế độ Transport, ESP chỉ đơn thuần thêm phần header của bản thân nó vào sau phần IP header và mã hoá toàn bộ phần còn lại của gói tin từ tầng 4 trở lên. Nếu trong quá trình thương lượng khởi tạo một IPSec connection có chỉ định sử dụng dịch vụ xác thực của ESP, khi đó ESP sẽ thêm một phần (trailer) chứa thông tin ICV để đảm bảo tính toàn vẹn và tính xác thực. Không giống với AH, ESP ICV không tính toán dựa trên các thông tin về IP header.
ESP thường được xem như là sự kết hợp của IPSec với NAT. ESP thường được sử dụng trong chế độ tunnel. Tuy nhiên trong chế độ transport, ESP và NAT không tương thích với nhau vì các thông tin của phần header của gói tin đã bị NAT thay đổi. Khi NAT thực hiện thay đổi phần thông tin về IP, nó cũng sẽ tính lại giá trị checksum trong TCP header. Và bởi vì TCP checksum được tính toán không chỉ dựa vào TCP header, mà nó còn dựa vào các thông tin từ IP header, như địa chỉ nguồn/đích của gói tin nên NAT đã phá vỡ tính toàn vẹn của gói tin. Trong chế độ Transport ESP, toàn bộ TCP header đã được mã hoá, NAT box sẽ không thể tính toán lại TCP checksum. (Vấn đề tương tự đối với UDP packets khi UDP checksum được tính đến). Kết quả là trước khi giải mã, gói tin sẽ bị hủy vì không bảo đảm tính toàn vẹn. Vấn đề này có thể được giải quyết nếu như không đụng đến TCP checksum trong mọi trường hợp.
Chỗ IPSec màu vàng có vẻ khó hiểu. Đối tượng đang được giải thích là IPSEC. ESP là một phần của IPSEC. Sẽ không hợp lý lắm khi đem IPSEC để giải thích ESP.
Khi đưa TCP/UDP vào cuộc, cũng nên nói rõ hoàn cảnh sử dụng là ESP bao bọc TCP/UDP. Để phân biệt với hoàn cảnh UDP bao bọc ESP (NAT-T) mà loạt bài sẽ nói đến về sau.
prof wrote:
Trong chế độ Tunnel ESP, NAT hoàn toàn được tương thích vì toàn bộ gói tin nguồn bao gồm các thông tin về IP và thông tin ở tầng 4 được đóng gói và do đó không bị xử lý bởi NAT. Vì thông tin về IP, TCP header, TCP checksum không bị thay đổi trong chế độ Tunnel ESP nên gói tin sẽ được giải mã và thoả mãn tính toàn vẹn. Tuy nhiên, mặc dù ESP traffic trong chế độ Tunnel có thể tương thích với NAT, bạn sẽ gặp phải các vấn đề liên quan đến NAT khi thương lượng các tham số cho IPSec connection. Chẳng hạn, one-to-many NAT (thường được hiểu là PAT) sẽ sửa đổi tham số cổng nguồn của một outbound IKE packet, dẫn đến giá trị cổng UDP 500 dành cho IKE bị thay đổi, từ đó dẫn đến việc thất bại khi phân phối khoá cho các tham số của IPSec session.
Đoạn này có thể xem như có 2 phần:
Phần NAT màu vàng thứ nhất nói về tính tương thích của NAT với ESP. Ở đây nên làm rõ thêm từ NAT bởi một từ khác (thí dụ, basic NAT theo tự điển wikipedia), ngụ ý rằng ở đây chỉ có dịch địa chỉ mà thôi. Cũng nên nói rõ thêm NAT trong trường hợp chung (bao hàm PAT) với ESP trong chế độ tunnel là không tương thích bởi vì khác với TCP/UDP, ESP không có khái niệm "cổng". Như thế người đọc sẽ không phải thắc mắc đại loại như nếu ESP tunnel và NAT đã tương thích với nhau, tại sao phải dùng UDP bao bọc ESP để có NAT-T?
Phần NAT màu vàng thứ hai nói về tính tương thích của NAT với IKE, cũng nên nói rõ hơn một chút (nhưng chính alice cũng chưa biết nói thế nào cho rõ ), tránh cho người đọc những thắc mắc kiểu như tại sao khác với nhiều giao thức trên nền TCP/UDP, IKE phải cố định cổng nguồn?.
prof wrote:
Một vấn đề còn đang tranh cãi nữa là khả năng xác thực của ESP. Như ta đã biết, ESP có khả năng cung cấp cơ chế xác thực, nhưng giá trị băm mà nó sử dụng được sinh ra dựa trên toàn bộ gói tin ngoại trừ phần IP header và phần authentication trailer. Điều này giúp cho ESP authentication tương thích với NAT, nhưng việc thiếu xác thực của IP header sẽ không đảm bảo được nguồn gốc của gói tin. May thay, trong hầu hết các cài đặt, việc kiểm tra tính xác thực cho phần payload của ESP cũng đủ để nói lên nguồn gốc của gói tin này!
Theo alice, cụm từ payload của ESP có lẽ sửa thành IP payload hoặc cụ thể hơn 1 chút thì ESP header mới đúng. Như chính prof đã nói, authentication trailer xác thực không những ESP payload mà còn cả ESP header, trong đó có SPI (security parameter index), từ đó dựa theo SAD (security association database) tra được địa chỉ IP của người gửi. Nói cách khác, với một chi phí tính toán thích đáng, cài đặt không cần phải xác thực IP header vẫn xác thực được địa chỉ IP nguồn của gói tin.
Cám ơn thangdiablo, prof, Mr. Khoai và các bạn khác vì một loạt bài lý thú. ) |
|
Như hà nghịch lỗ lai xâm phạm
如 何 逆 虜 來 侵 犯 |
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
12/01/2007 01:13:26 (+0700) | #9 | 35684 |
father_nghia_den
Elite Member
|
0 |
|
|
Joined: 06/10/2003 16:48:21
Messages: 95
Offline
|
|
prof wrote:
ESP thường được xem như là sự kết hợp của IPSec với NAT.
Đúng như Alice nói . Có thể đoạn này sẽ gây hiểu lầm . Tất nhiên prof hiểu được bản chất vấn đề nhưng cú pháp trong câu này hơi bị khó hiểu 1 chút .
Theo tớ nghĩ câu trên sẽ là ESP là giải pháp cho phép IPSec chạy trên hệ thống có xảy ra quá trình NAT với điều kiện IPSEC chạy ở mode Tunel . |
|
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
12/01/2007 04:57:35 (+0700) | #10 | 35739 |
|
anhdong2k5
Member
|
0 |
|
|
Joined: 01/07/2006 05:02:14
Messages: 92
Offline
|
|
Đọc đi đọc lại mấy lần loạt bài này cũng chưa hiểu hết mặc dù bài viết rất chi tiết, bro nào có tài liệu thì cho mình xin để đọc thêm đi.
Cám ơn mọi người! |
|
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
13/01/2007 08:54:00 (+0700) | #11 | 35940 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
Bravo prof , alice và các bạn đã tham gia . Chính những kiến thức rất sâu và đóng góp của các bạn sẽ tạo cho loạt bài này thêm phần lý thú .
Trong phần kế tiếp chúng ta sẽ bàn đến cách cấu hình cụ thể và monitor các trạng thái hoạt động của kênh IPSEC .
Đến lúc đó hy vọng các bạn tiếp tục pham gia để phân tích các thông tin thu thập được từ debug.
Thân mến |
|
Hãy sống có Tuệ Giác. |
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
14/01/2007 06:38:32 (+0700) | #12 | 36086 |
prof
Moderator
|
Joined: 23/11/2004 01:08:55
Messages: 205
Offline
|
|
Chào cả nhà,
Chào alice,
Prof rất vui khi nhận được comments từ alice, father_nghia_den, và thangdiablo. Mấy ngày qua mình khá bận nên việc reply có phần chậm trễ. Mong các bạn thông cảm. Bây giờ ta tiếp tục thảo luận nhé. )
alice wrote:
Bài bổ sung của prof rất tốt, alice chỉ nghĩ có thể bài viết sẽ dễ hiểu hơn nếu thay đổi vài điểm về thuật ngữ. )
Uhm, mục đích của bài viết bổ sung cho loạt bài của bạn thangdiablo là nhằm đào sâu hơn một chút về những thứ mà thangdiablo chưa có dịp đề cập đến. Rõ ràng, bài viết sẽ không thành công nếu như tạo thêm sự khó hiểu cho người đọc. Vì vậy, trong quá trình thảo luận, mình sẵn sàng "thay đổi vài điểm về thuật ngữ" nhằm giúp độc giả *tiêu hóa* tốt hơn. Cũng cần nói thêm là bài bổ sung trên được viết khá gấp rút, nên không thể tránh khỏi thiếu sót. Góp ý của các bạn sẽ giúp bài viết thêm phần hoàn thiện. )
prof wrote:
Lý do AH có khả năng cung cấp cơ chế xác thực và bảo đảm tính toàn vẹn (integrity) của dữ liệu là vì AH Header chứa một chữ ký số (Digital Signature - DS) được gọi là giá trị kiểm tra tính toàn vẹn (Integrity Check Value-ICV). Thực chất nó là một giá trị băm được dùng để kiểm tra xem liệu gói tin có bị thay đổi trên đường truyền hay không. Vì AH sử dụng IP header để tính toán DS nên chúng ta có thể chắc chắn rằng địa chỉ nguồn của gói tin là xác thực và gói tin này xuất phát từ đúng nơi gửi.
Dùng từ ICV là đủ, tránh dùng từ DS. ICV nói chung không phải là DS và thực tế không phải là DS.
Trước tiên, hoàn toàn đồng ý với alice ở điểm ICV không phải là DS. ) Tuy nhiên, khi viết đoạn này, ý đồ của mình không nhằm so sánh DS và ICV. Mình tuy là kẻ *ngâm cứu* không chuyên về applied crypto. & its related stuffs nhưng cũng may mắn hiểu được sự khác biệt về phạm vi ứng dụng, và về bản chất của DS. Trong phạm vi bài này, mình sử dụng DS với mục đích giúp người đọc hiểu được những lợi điểm do ICV đem lại, kiểu như dùng một thuật ngữ đã quen thuộc để giải thích cho một thuật ngữ mới hơn. Có lẽ chúng ta đều biết DS có khả năng cung cấp tính xác thực (Authentication), tính toàn vẹn (Integrity), và tính chống phủ nhận (Non-repudiation). ICV trong AH Header cũng hội đủ các điều kiện để cung cấp 2 trong 3 khả năng này. Vì vậy, ở một khía cạnh hẹp & trực quan nào đó, ICV mang đặc điểm của DS.
Mình cũng đã từng gặp ở một số tài liệu khác, khi đề cập đến một intemediate device/application/middleware/..., người viết thường mượn thuật ngữ proxy server nhằm mục đích nói lên tính trung gian của đối tượng đang xét, mặc dù nếu khắt khe hơn, thì proxy server không thể là đối tượng mà họ đang bàn. Đó chỉ là một ví dụ khá *thô* về cách dùng thuật ngữ mà thôi. )
Anyway, có lẽ mình đã lạm dụng thuật ngữ DS này nên dẫn đến hiểu lầm. Prof sẽ chỉnh sửa lại đoạn này bằng việc bỏ đi thuật ngữ DS.
prof wrote:
Cách thức hoạt động của ESP có khác biệt đôi chút phụ thuộc vào chế độ làm việc của IPSec. Trong chế độ Transport, ESP chỉ đơn thuần thêm phần header của bản thân nó vào sau phần IP header và mã hoá toàn bộ phần còn lại của gói tin từ tầng 4 trở lên. Nếu trong quá trình thương lượng khởi tạo một IPSec connection có chỉ định sử dụng dịch vụ xác thực của ESP, khi đó ESP sẽ thêm một phần (trailer) chứa thông tin ICV để đảm bảo tính toàn vẹn và tính xác thực. Không giống với AH, ESP ICV không tính toán dựa trên các thông tin về IP header.
ESP thường được xem như là sự kết hợp của IPSec với NAT. ESP thường được sử dụng trong chế độ tunnel. Tuy nhiên trong chế độ transport, ESP và NAT không tương thích với nhau vì các thông tin của phần header của gói tin đã bị NAT thay đổi. Khi NAT thực hiện thay đổi phần thông tin về IP, nó cũng sẽ tính lại giá trị checksum trong TCP header. Và bởi vì TCP checksum được tính toán không chỉ dựa vào TCP header, mà nó còn dựa vào các thông tin từ IP header, như địa chỉ nguồn/đích của gói tin nên NAT đã phá vỡ tính toàn vẹn của gói tin. Trong chế độ Transport ESP, toàn bộ TCP header đã được mã hoá, NAT box sẽ không thể tính toán lại TCP checksum. (Vấn đề tương tự đối với UDP packets khi UDP checksum được tính đến). Kết quả là trước khi giải mã, gói tin sẽ bị hủy vì không bảo đảm tính toàn vẹn. Vấn đề này có thể được giải quyết nếu như không đụng đến TCP checksum trong mọi trường hợp.
Chỗ IPSec màu vàng có vẻ khó hiểu. Đối tượng đang được giải thích là IPSEC. ESP là một phần của IPSEC. Sẽ không hợp lý lắm khi đem IPSEC để giải thích ESP.
Khi đưa TCP/UDP vào cuộc, cũng nên nói rõ hoàn cảnh sử dụng là ESP bao bọc TCP/UDP. Để phân biệt với hoàn cảnh UDP bao bọc ESP (NAT-T) mà loạt bài sẽ nói đến về sau.
Yep! Câu trên đúng là gây khó hiểu. Rất may mắn, bạn father_nghia_den đã giải thích lại giúp một cách hợp lý. Thanks father_nghia_den. )
Đoạn này có thể xem như có 2 phần:
Phần NAT màu vàng thứ nhất nói về tính tương thích của NAT với ESP. Ở đây nên làm rõ thêm từ NAT bởi một từ khác (thí dụ, basic NAT theo tự điển wikipedia), ngụ ý rằng ở đây chỉ có dịch địa chỉ mà thôi. Cũng nên nói rõ thêm NAT trong trường hợp chung (bao hàm PAT) với ESP trong chế độ tunnel là không tương thích bởi vì khác với TCP/UDP, ESP không có khái niệm "cổng". Như thế người đọc sẽ không phải thắc mắc đại loại như nếu ESP tunnel và NAT đã tương thích với nhau, tại sao phải dùng UDP bao bọc ESP để có NAT-T?
Thanks alice. Mình quả thật đã thiếu xót khi không đề cập đến khía cạnh NAT-T trong IKE.
Phần NAT màu vàng thứ hai nói về tính tương thích của NAT với IKE, cũng nên nói rõ hơn một chút (nhưng chính alice cũng chưa biết nói thế nào cho rõ ), tránh cho người đọc những thắc mắc kiểu như tại sao khác với nhiều giao thức trên nền TCP/UDP, IKE phải cố định cổng nguồn?.
Chà, xem ra "người đọc" muốn mở rộng thêm vấn đề về tính tương thích giữa NAT và việc cố định cổng nguồn của IKE đây. Trường hợp này, có lẽ phải mời người tham khảo thêm RFC 3715 để biết chi tiết. ) Phải thừa nhận một điều là còn khá nhiều vấn đề giữa NAT và IPSec mà prof chưa thể nói hết. Bởi vậy, ngay từ đầu, mình chỉ dám đi sâu một chút, vì biết sẽ không đủ sức. Nếu alice hay bạn nào đó có thời gian, các bạn có thể bổ sung thêm những vấn đề mà mình chưa đề cập đến.
Theo alice, cụm từ payload của ESP có lẽ sửa thành IP payload hoặc cụ thể hơn 1 chút thì ESP header mới đúng. Như chính prof đã nói, authentication trailer xác thực không những ESP payload mà còn cả ESP header, trong đó có SPI (security parameter index), từ đó dựa theo SAD (security association database) tra được địa chỉ IP của người gửi. Nói cách khác, với một chi phí tính toán thích đáng, cài đặt không cần phải xác thực IP header vẫn xác thực được địa chỉ IP nguồn của gói tin.
Đồng ý! ) |
|
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
14/01/2007 18:33:38 (+0700) | #13 | 36186 |
|
alice
Elite Member
|
0 |
|
|
Joined: 20/01/2005 22:23:24
Messages: 87
Location: Wonderland
Offline
|
|
prof wrote:
Trước tiên, hoàn toàn đồng ý với alice ở điểm ICV không phải là DS. ) Tuy nhiên, khi viết đoạn này, ý đồ của mình không nhằm so sánh DS và ICV. Mình tuy là kẻ *ngâm cứu* không chuyên về applied crypto. & its related stuffs nhưng cũng may mắn hiểu được sự khác biệt về phạm vi ứng dụng, và về bản chất của DS. Trong phạm vi bài này, mình sử dụng DS với mục đích giúp người đọc hiểu được những lợi điểm do ICV đem lại, kiểu như dùng một thuật ngữ đã quen thuộc để giải thích cho một thuật ngữ mới hơn. Có lẽ chúng ta đều biết DS có khả năng cung cấp tính xác thực (Authentication), tính toàn vẹn (Integrity), và tính chống phủ nhận (Non-repudiation). ICV trong AH Header cũng hội đủ các điều kiện để cung cấp 2 trong 3 khả năng này. Vì vậy, ở một khía cạnh hẹp & trực quan nào đó, ICV mang đặc điểm của DS.
Mình cũng đã từng gặp ở một số tài liệu khác, khi đề cập đến một intemediate device/application/middleware/..., người viết thường mượn thuật ngữ proxy server nhằm mục đích nói lên tính trung gian của đối tượng đang xét, mặc dù nếu khắt khe hơn, thì proxy server không thể là đối tượng mà họ đang bàn. Đó chỉ là một ví dụ khá *thô* về cách dùng thuật ngữ mà thôi. )
Anyway, có lẽ mình đã lạm dụng thuật ngữ DS này nên dẫn đến hiểu lầm. Prof sẽ chỉnh sửa lại đoạn này bằng việc bỏ đi thuật ngữ DS.
Ồ, alice thật có lỗi khi đã viết ở đó 1 câu bình cộc lốc. Thực sự, các bài viết của prof ở HVA vài năm nay đã chứng tỏ một kiến thức sâu rộng về cryptography và các ứng dụng của nó, còn lối diễn đạt dễ hiểu và phong cách tranh luận khiêm tốn đã thể hiện tính chuyên nghiệp rất cao. Một khi prof. prof tự đánh giá mình là người nghiên cứu "không chuyên" thì alice phải hoảng hốt tự nhận mình là kẻ "tà ma ngoại đạo" thui ) . Nếu được viết lại, alice sẽ viết thế này:
"Sự ví von rất hay, đã làm cho giải thích thêm phần dễ hiểu. Tuy nhiên, nếu viết từ chữ ký trong "nháy nháy" và không mở ngoặc viết thêm phụ đề Anh ngữ digital signature (DS) thì thuật ngữ sẽ không bị "đụng hàng" và tính chất ví von sẽ được thể hiện rõ nét hơn nữa. :! ) "
Khi tính chống phủ nhận (non-repudiability) đã được đề cập, luôn tiện nói thêm, nhóm giao thức IPSEC không có tính chất này. Đó không phải là một thiếu sót. Ngược lại, plausible deniability (tính phủ nhận được?) là cần thiết. Nhờ thế An và Bình có thể liên lạc với nhau mà sau này có thể "cãi bay chối biến" vì không để lại chứng cứ nào về sự liên lạc. Giám định viên tư pháp muốn tìm chứng cứ chống lại An cũng đành phải bó tay ngay cả khi Bình bội bạc với An. )
Plausible deniability là một trong những mối quan tâm khi thiết kế IPSEC và ở một chừng mực nào đó, đã được đảm bảo.
prof wrote:
alice wrote:
Phần NAT màu vàng thứ hai nói về tính tương thích của NAT với IKE, cũng nên nói rõ hơn một chút (nhưng chính alice cũng chưa biết nói thế nào cho rõ ), tránh cho người đọc những thắc mắc kiểu như tại sao khác với nhiều giao thức trên nền TCP/UDP, IKE phải cố định cổng nguồn?.
Chà, xem ra "người đọc" muốn mở rộng thêm vấn đề về tính tương thích giữa NAT và việc cố định cổng nguồn của IKE đây. Trường hợp này, có lẽ phải mời người tham khảo thêm RFC 3715 để biết chi tiết. ) Phải thừa nhận một điều là còn khá nhiều vấn đề giữa NAT và IPSec mà prof chưa thể nói hết. Bởi vậy, ngay từ đầu, mình chỉ dám đi sâu một chút, vì biết sẽ không đủ sức. Nếu alice hay bạn nào đó có thời gian, các bạn có thể bổ sung thêm những vấn đề mà mình chưa đề cập đến.
Ớ, RFC 3715 đâu có giải thích tại sao IKE cố định cổng nguồn đâu, chỉ nói ra điều đó thui muh ). Một cách nghiêm túc, RFC này tổng kết 16 điểm không tương thích NAT -- nguyên văn: NA(P)T -- của nhóm giao thức IPSEC, đánh số từ a) đến p), trong đó có 9 điểm đầu tiên thuộc loại thâm căn cố đế (intrinsic). Việc cổng nguồn IKE cố định được prof lấy làm thí dụ, nếu alice hiểu không lầm, là điểm d), chỉ được RFC nêu ra như là một thực tế "ngời ngời như chân lý" thôi. Cho dù đó là thực tế, alice không nghĩ rằng nó hiển nhiên như một yêu cầu chuẩn định (normative).
Đó là điều mà trong bài trước alice đã muốn "nói rõ thêm một chút mà không biết nói thế nào". )
Còn việc mở rộng vấn đề ra một cách rõ ràng và đầy đủ, alice cũng không có nguyện vọng đó. alice biết mình không đủ qualified và mặt khác, nhất trí hoàn toàn với prof, RFC 3175 đã gọn ràng đến mức khó có thể trình bày lại vấn đề cho gọn gàng hơn. Không tương thích IPSEC với NAT là một "tổ kiến lửa" mà việc "chọc" vào nó là không thích đáng trong phạm vi của một bài tut. ) |
|
Như hà nghịch lỗ lai xâm phạm
如 何 逆 虜 來 侵 犯 |
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
06/04/2007 00:43:23 (+0700) | #14 | 51859 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
Phần III .Hướng dẫn cấu hình VPN/IPSEC trên Router Cisco
Chào anh em. Có 1 điều đáng tiếc là do trong thời gian vừa qua tôi có sự thay đổi công việc nên hơi bận rộn và thời gian không có phép tôi viết tiếp tục TUT này 1 cách liên tục. Hôm nay thời gian đã rảnh rỗi hơn tôi xin tiếp tục để các bạn theo dõi.
Mô hình wrote:
[[ROUTER R1]]
s1/0 = R2 s1/0 # Cổng Serial s1/0 của Router R1 nối với s1/0 của R2
[[router R2]]
model = 7200
s1/1 = R3 s1/1 # Cổng Serial S1/1 của Router R2 nối với S1/1 của R3
[[router R3]]
model = 7200
Trướ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
hostname R1
boot-start-marker
boot-end-marker
enable secret 5 $1$NOsH$dzAiUg0rigA/wHkPJZB/b0
no aaa new-model
ip cef
multilink bundle-name authenticated
crypto pki trustpoint TP-self-signed-4294967295
enrollment selfsigned
subject-name cn=IOS-Self-Signed-Certificate-4294967295
revocation-check none
rsakeypair TP-self-signed-4294967295
crypto pki certificate chain TP-self-signed-4294967295
certificate self-signed 01
3082023A 308201A3 A0030201 02020101 300D0609 2A864886 F70D0101 04050030
31312F30 2D060355 04031326 494F532D 53656C66 2D536967 6E65642D 43657274
69666963 6174652D 34323934 39363732 3935301E 170D3037 30343034 32323332
30325A17 0D323030 31303130 30303030 305A3031 312F302D 06035504 03132649
4F532D53 656C662D 5369676E 65642D43 65727469 66696361 74652D34 32393439
36373239 3530819F 300D0609 2A864886 F70D0101 01050003 818D0030 81890281
8100B306 EE726C90 E705F165 B464DDA4 314014FA 38DA1020 120AB79E CB3B9AD8
B76B2262 2FAE5208 21C20A01 4304984C 34C0ED37 DD02AF87 99FC8B86 DBCD42FF
B08CF30C 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
170326E5 33621860 52B3D330 0D06092A 864886F7 0D010104 05000381 81009463
996F4CA7 6DC06475 AF297485 5A715D4B AE4DB018 13F79AD0 33227310 8DACCC44
1EB897F9 82F41311 7E178D1B 903197F6 5082C822 9BE373DA 5743BE8E 6E68A90E
081C6CF4 BD3ED8D3 C7E4DAF8 10325062 8B1A8A43 80886D42 EFD18E26 3B854D05
969B748B 4F084A4A 1031AA22 7684BBE0 846DA565 AC257813 0AD2B5F9 42A0
quit
interface Loopback0
ip address 192.168.1.1 255.255.255.0
interface Loopback1
ip address 192.168.2.1 255.255.255.0
interface Loopback2
ip address 192.168.3.1 255.255.255.0
interface FastEthernet0/0
ip address 10.10.1.146 255.255.255.0
duplex full
interface Serial1/0
ip address 10.0.0.1 255.255.255.0
ip 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
no fair-queue
serial restart-delay 0
clock rate 64000
router eigrp 1
network 192.168.1.0
network 192.168.2.0
network 192.168.3.0
auto-summary
router ospf 1 \\ Giữa 3 Router của 3 miền tôi dung cơ chế OSPF để routing. Và tất cả để được nối vào Area0
log-adjacency-changes
summary-address 192.168.0.0 255.255.0.0
redistribute eigrp 1 subnets
network 10.0.0.0 0.0.0.255 area 0
ip http server
ip http secure-server
logging alarm informational
control-plane
gatekeeper
shutdown
banner motd ^C
Retrict Area . This is ASBR . Routing OSPF1 + EIGRP1
^C
line con 0
exec-timeout 0 0
password cisco
login
stopbits 1
Config Router 2 Đà Nẵng wrote:
R2
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname R2
boot-start-marker
boot-end-marker
enable secret 5 $1$zFeK$NJjHyf.rQkLWZf88tT21R.
no aaa new-model
ip cef
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
group 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
interface Loopback0
ip address 172.0.0.1 255.255.255.0
interface Loopback1
ip address 172.0.2.1 255.255.255.0
interface Loopback2
ip address 172.0.3.1 255.255.255.0
interface FastEthernet0/0
no ip address
shutdown
duplex half
interface Serial1/0
ip address 10.0.0.2 255.255.255.0
ip ospf authentication message-digest
ip ospf message-digest-key 1 md5 thang
serial restart-delay 0
interface Serial1/1
ip address 11.0.0.1 255.255.255.0
ip ospf authentication message-digest
ip ospf message-digest-key 2 md5 thang
serial restart-delay 0
clock rate 64000
crypto map VPN_TO_R3 \\Apply crypto map vào Interface kết nối VPN
router eigrp 1
network 172.0.0.0 0.0.0.255
network 172.0.2.0 0.0.0.255
network 172.0.3.0 0.0.0.255
auto-summary
router ospf 1
log-adjacency-changes
summary-address 192.168.0.0 255.255.0.0 not-advertise
summary-address 172.0.0.0 255.255.0.0
redistribute eigrp 1 subnets
network 10.0.0.0 0.0.0.255 area 0
network 11.0.0.0 0.0.0.255 area 0
no ip http server
no ip http secure-server
logging alarm informational
access-list 101 permit ip 10.0.0.0 0.0.255.255 210.245.0.0 0.0.255.255 \\ Khi thực hiện command này chúng ta đang tạo ra bộ luật bao gồm những range IP sẽ được VPN và mã hóa bởi IP SEC.
Và Access list 101 này chúng ta đã apply vào Router bằng lệnh match address 101 phía trên. Thao tác tạo ra Access list này các bạn nên làm trước khi Apply các chính sách VPN IPSEC và Router.
Ý nghĩa của command này là tôi muốn Router hiểu rằng tất cả những traffic nào có địa chỉ IP là 10.0.x.x subnet mask 255.255.0.0 khi muốn đi tới range 210.245.x.x subnetmask là 255.255.0.0 đều phải chui qua VPN và được IPSEC bao bọc.
control-plane
gatekeeper
shutdown
banner motd ^C
Retrict Area . This's ASBRs Router . EIGRP1 + OSPF1
^C
line con 0
password cisco
login
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
end
R2#
Còn với Router 3 thì các bạn nhìn và suy luận tương tự như Router 2
Config Router 3 HCM wrote:
Building configuration...
Current configuration : 1829 bytes
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
hostname R3
boot-start-marker
boot-end-marker
no aaa new-model
ip cef
multilink bundle-name authenticated
crypto isakmp policy 1
encr aes
authentication pre-share
group 2
crypto isakmp key 6 cisco address 11.0.0.1
crypto ipsec transform-set R3 esp-aes esp-sha-hmac
crypto map VPN_TO_R2 10 ipsec-isakmp
set peer 11.0.0.1
set transform-set R3
match address 101
interface Loopback0
ip address 210.245.31.130 255.255.255.255
interface FastEthernet0/0
no ip address
shutdown
duplex half
interface Serial1/0
no ip address
shutdown
no fair-queue
serial restart-delay 0
interface Serial1/1
ip address 11.0.0.2 255.255.255.0
ip ospf authentication message-digest
ip ospf message-digest-key 2 md5 thang
serial restart-delay 0
crypto map VPN_TO_R2
router ospf 1
log-adjacency-changes
network 11.0.0.0 0.0.0.255 area 0
network 210.245.0.0 0.0.255.255 area 0
no ip http server
no ip http secure-server
logging alarm informational
access-list 101 permit ip 210.245.0.0 0.0.255.255 10.0.0.0 0.0.0.255
control-plane
gatekeeper
shutdown
banner motd ^C
Retric Area .^C
line con 0
exec-timeout 0 0
stopbits 1
line aux 0
stopbits 1
line vty 0 4
login
End
Trong phần này tôi đã trình bày cách cấu hình VPN IPSEC theo dạng Site to Site.
Và những gì sẽ diễn ra sau khi chúng ta thiết lập những thông số trên?
Làm sao chúng ta có thể biết VPN đã chạy hay chưa?
Nó đang ở mode nào? Xin vui lòng chờ chương kế tiếp.
Tôi không giải thích qua chi tiết tất cả những command trong quá trình viết TUT này. Do đó xin mời tất cả các bạn tham gia thảo luận.
Cám ơn các bạn
Thangdiablo
-1- peer Chỉ những đầu , đối tượng liên hệ trực tiếp với Router |
|
Hãy sống có Tuệ Giác. |
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
21/07/2007 01:56:26 (+0700) | #15 | 72616 |
|
PhuongDT
Member
|
0 |
|
|
Joined: 19/04/2005 02:36:42
Messages: 41
Location: HVA
Offline
|
|
Bài viết và các thảo luận rất hay, mong bro thangdiablo tiếp tục post nhiều bài tương tự nữa nhé. |
|
|
|
|
[Question] Re: Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
25/07/2007 06:55:24 (+0700) | #16 | 73704 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
PhuongDT wrote:
Bài viết và các thảo luận rất hay, mong bro thangdiablo tiếp tục post nhiều bài tương tự nữa nhé.
Tớ sẽ cố gắng viết trong vài ngày tới. Thời gian vừa rồi bạn quá. Sorry mọi người.
Thân mến |
|
Hãy sống có Tuệ Giác. |
|
|
|
[Question] Cơ chế hoạt động và cách cấu hình VPN IP Sec trên router Cisco |
16/06/2009 13:59:27 (+0700) | #17 | 183677 |
thangdiablo
HVA Friend
|
Joined: 11/05/2003 17:31:58
Messages: 734
Offline
|
|
Hôm nay có việc ngồi làm cái VPN Site to Site mới lại nhớ ra mình chưa hoàn thành cái TUT này ( Cũng hơn 2 năm rồi ).
Nhân tiện đang làm mình viết nốt phần còn lại về việc kiểm tra, debug quá trình VPN sau khi đã cấu hình xong.
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, mà ngày trước mình quên.
Đó 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
R#sh crypto map
Crypto Map "VPN-SG-HN" 10 ipsec-isakmp
Peer = 10.252.15.6
Extended IP access list 101
access-list 101 permit ip 10.128.16.0 0.0.15.255 172.16.128.0 0.0.3.255
access-list 101 permit ip 172.16.0.0 0.0.127.255 172.16.128.0 0.0.3.255
Current peer: 10.252.15.6
Security association lifetime: 4608000 kilobytes/3600 seconds
PFS (Y/N): N
Transform sets={
SG-HN,
}
Interfaces using crypto map VPN-SG-HN:
GigabitEthernet0/1
Khi 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)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0xF4B4F10(256593680)
transform: 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)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
protected vrf: (none)
local ident (addr/mask/prot/port): (10.128.16.0/255.255.240.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: 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)
inbound 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)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x1084C9E4(277137892)
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)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
Thêm 1 lệnh để kiểm tra quá trình thiết lập IKE
sh crypto isakmp sa
dst src state conn-id slot status
172.31.1.218 10.252.15.6 QM_IDLE 3 0 ACTIVE
Trong quá trình làm và debug. Nhớ enable debug crypto isakmp và ipsec lên để theo dõi nhé.
Các bạn sẽ thấy được quá trình làm việc, thiết lập thông số giữa 2 peers.
Thôi đi ngủ. Good night. |
|
Hãy sống có Tuệ Giác. |
|
|
|
|