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
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-
đồ cụ thể .
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/eniln
oavh/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
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]ht_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 .
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
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 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
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.
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
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
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:
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
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
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.
/>