You are on page 1of 39

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐH QUỐC GIA HÀ NỘI

Khoa Điện tử viễn thông


---------- ----------

BÀI TIỂU LUẬN


HỆ THỐNG VIỄN THÔNG VỚI CÔNG NGHỆ MỚI

Đề tài: Tổng quan về công nghệ VPN

Lớp: K49ĐB

Giảng viên: ĐINH THỊ THÁI MAI

Sinh viên: DƯƠNG NGỌC THẮNG

LÊ VŨ THẮNG

NGUYỄN VĂN DŨNG THẮNG

NGUYỄN HOÀNG TÙNG

Hà Nội – 2007

1
Phần1. Đề tài và mục đích thực hiện đề tài..................................................................................... .............3

1.1 Đề Tài.............................................................................................................................. ..................3

1.2 Mục đính thực hiện............................................................................................................. ...............4

Phần 2: Tổng quan về mạng VPN........................................................................................................ ........4

2.1 Giới thiệu về công nghệ VPN........................................................................................ ....................4

2.2 Khái niệm................................................................................................................. .........................5

2.3 Các loại VPN.................................................................................................................... .................5

VPN điểm-nối-điểm......................................................................................................................... ....7

2.4 Các yêu cầu đối với VPN........................................................................................................... ........7

2.4.1 Bảo mật trong VPN.............................................................................................................. .......8

Máy chủ AAA................................................................................................................................. .....9

2.4.2 Tính sẵn sàng và tính tin cây..................................................................................... ..................9

2.4.3 Chất lượng dịch vụ................................................................................................................ ......9

2.4.4 Khả năng quản trị............................................................................................................... .......10

2.4.5 Khả năng tương thích....................................................................................................... .........10

2.4.6 Sản phẩm công nghệ dành cho VPN ................................................................. .......................11

2.5 Các kĩ thuật trong mạng VPN................................................................................... .......................11

2.5.1 Kỹ thuật Tunneling trong mạng VPN điểm-nối điểm ..................................................... ..........11

2.5.2 Kỹ thuật Tunneling trong mạng VPN truy cập từ xa ................................................ ................12

2.6 Các thành phần trong mạng VPN............................................................................................... ......12

2.6.1 Các thành phần của một tunning............................................................................... ................12

2.6.2 Định dạng gói dữ liệu VPN............................................................................................. ..........13

2.7 Hoạt động của VPN..................................................................................................... ....................13

Phần 3: Công Nghệ Mạng Riêng Ảo (VPN).............................................................................. ................15

3.1 Point-to-Point Protocol (PPP)....................................................................................... ...................15

3.1.1 Quá trình hoạt động PPP.............................................................................................. .............16

2
3.1.2 PPP Packet Format........................................................................................................... .........17

3.1.3 PPP Link Control.................................................................................................. ....................18

3.2 Point-to-Point Tunneling Protocol (PPTP)............................................................................. ..........19

3.2.1 Vai trò của PPP trong giao dịch PPTP.......................................................................... .............20

3.2.2 Các thành phần của quá trình giao dịch PPTP...................................................................... .....20

3.2.3 Quá trình xữ lý PPTP................................................................................................. ...............22

Phần 4: Triển khai hệ thống VPN..................................................................................... .........................25

4.1 Mô tả mô hình.............................................................................................................................. ....25

4.3 Cấu hình cho máy chủ và máy khách kết nối VPN ..................................................... ....................28

4.3.1 Tệp cấu hình cho máy chủ........................................................................................................ .29

4.3.2 Tệp cấu hình cho máy khách............................................................................................ .........34

4.3.3 Kết quả:.................................................................................................................................. ...36

Phần 5: Kết luận.............................................................................................................. ..........................38

5.1.1 Thuận lợi.......................................................................................................................... .........39

5.1.2 Bất lợi................................................................................................................ .......................39

Phần1. Đề tài và mục đích thực hiện đề tài


1.1 Đề Tài

Tổng quan về công nghệ VPN

3
1.2 Mục đính thực hiện

Trên thế giới, mạng riêng ảo đã được phát triển và ứng dụng rất nhiều trong thực tế. Ở Việt Nam
thời gian gần đây việc sử dụng mạng VPN đã được triển khai ở một số công ty lớn yêu cầu tính
bảo mật cao, chi phí đầu tư thấp.

Trong bài tiểu luận này, chúng tôi nghiên cứu các giải pháp công nghệ cho vấn đề xây dựng
mạng riêng ảo (VPN). Nghiên cứu để có cái nhìn đầy đủ về công nghệ VPN từ lý thuyết đến
triển khai thực tế. Nghiên cứu khuôn dạng các gói tin VPN, các mô hình truy cập, các phương
pháp xác thực và ứng dụng triển khai cài đặt trên các hệ thống mạng.

Mặc dù đã cố gắng hết sức, song chắc chắn không chánh khởi những thiếu sót. Chúng em rất mong nhận
được sự thông cảm và chỉ bảo tận tình của quý thầy cô, các anh chị và các bạn.

Hà Nội 10/2007

Nhóm sinh viên thực hiện

Phần 2: Tổng quan về mạng VPN


2.1 Giới thiệu về công nghệ VPN

Giải pháp VPN (Virtual Private Network) được thiết kế cho những tổ chức có xu hướng tăng
cường thông tin từ xa vì địa bàn hoạt động rộng (trên toàn quốc hay toàn cầu). Tài nguyên ở
trung tâm có thể kết nối đến từ nhiều nguồn nên tiết kiệm được được chi phí và thời gian.

4
2.2 Khái niệm

Về cơ bản, VPN là một mạng riêng sử dụng hệ thống mạng công cộng (thường là Internet) để kết
nối các địa điểm hoặc người sử dụng từ xa với một mạng LAN ở trụ sở trung tâm. Thay vì dùng
kết nối thật khá phức tạp như đường dây thuê bao số, VPN tạo ra các liên kết ảo được truyền qua
Internet giữa mạng riêng của một tổ chức với địa điểm hoặc người sử dụng ở xa.

Hinh1-Mô hình mạng VPN

Theo định nghĩa chuẩn được cung cấp bởi IETF, VPN là “Một sự mô phỏng mạng WAN riêng sử
dụng khả năng IP được chia sẻ hay công cộng như Internet hay IP backbone riêng.”

Được gọi là “Virtual” bởi vì VPN sử dụng các kết nối ảo. Đó là các kết nối tạm thời chứ không
phải các kết nối vật lý thực sự, nhưng các gói tin sẽ được định tuyến thông qua các máy riêng
trên mạng khi các kết nối ảo an toàn đã được tạo giữa hai máy, giữa một máy và một mạng hoặc
giữa hai mạng.

VPN cho phép khai thác mọi tiềm năng của mạng công cộng nhưng vẫn đảm báo tính bảo mật
của tổ chức. Chúng ta có thể tạo ra một mạng riêng trên một mạng công cộng bằng các kĩ thuật
mã hóa, xác thực các gói và truyền các gói qua các đường hầm kết nối cộng với các kĩ thuật
tường lửa.

2.3 Các loại VPN

Mục tiêu của công nghệ VPN là quan tâm đến các yếu tố sau đây:

- Các nhân viên liên lạc từ xa, người dùng di động có thể truy cập vào tài nguyên mạng
công ty của họ một cách an toàn bất cứ lúc nào.
- Có khả năng kết nối giữa các chi nhánh văn phòng, chi nhánh vơí văn phòng trung tâm.
- Kiểm soát được truy cập tới các tài nguyên mạng của người dùng.
5
Có hai loại phổ biến hiện nay là VPN truy cập từ xa (Remote-Access ) và VPN điểm-nối-điểm
(site-to-site)

VPN truy cập từ xa còn được gọi là mạng Dial-up riêng ảo (VPDN), là một kết nối người
dùng-đến-LAN, thường là nhu cầu của một tổ chức có nhiều nhân viên cần liên hệ với mạng
riêng của mình từ rất nhiều địa điểm ở xa.

Hình2: VPN Remote access

Ví dụ như công ty muốn thiết lập một VPN lớn phải cần đến một nhà cung cấp dịch vụ doanh
nghiệp (ESP). ESP này tạo ra một máy chủ truy cập mạng (NAS) và cung cấp cho những người
sử dụng từ xa một phần mềm máy khách cho máy tính của họ. Sau đó, người sử dụng có thể gọi
một số miễn phí để liên hệ với NAS và dùng phần mềm VPN máy khách để truy cập vào mạng
riêng của công ty. Loại VPN này cho phép các kết nối an toàn, có mật mã.

6
VPN điểm-nối-điểm

Hình3: VPN Site to site

Là việc sử dụng mật mã dành cho nhiều người để kết nối nhiều điểm cố định với nhau thông qua
một mạng công cộng như Internet. Loại này có thể dựa trên Intranet hoặc Extranet. Loại dựa trên
Intranet: Nếu một công ty có vài địa điểm từ xa muốn tham gia vào một mạng riêng duy nhất, họ
có thể tạo ra một VPN intranet (VPN nội bộ) để nối LAN với LAN. Loại dựa trên Extranet: Khi
một công ty có mối quan hệ mật thiết với một công ty khác (ví dụ như đối tác cung cấp, khách
hàng...), họ có thể xây dựng một VPN extranet (VPN mở rộng) kết nối LAN với LAN để nhiều
tổ chức khác nhau có thể làm việc trên một môi trường chung.

2.4 Các yêu cầu đối với VPN

• Bảo mật

• Tính sẵn sàng.

• Chất lượng dịch vụ (QoS)

• Tính tin cậy

• Khả năng tương thích

• Khả năng quản trị

7
2.4.1 Bảo mật trong VPN

Các mạng riêng và Intranet mang lại môi trường bảo mật cao vì các tai nguyên mạng không được
truy cập bởi mạng công cộng. Vì vậy nguy cơ bị truy cập trái phép của người dùng đến Intranet
là rất thấp. Tuy nhiên với công nghệ VPN có sử dụng Internet và các mạng công cộng khác như
mạng thoại PSTN…cho truyền thông. Như vậy môi trường mạng riêng ảo VPN mạng lại cho
các Hacker cơ hội thuận lợi để truy cập đến các mạng riêng và luồng dữ liệu qua nó qua các
mạng công cộng, kết quả là có nhiều nguy cơ về bảo mật. Do đó vấn đề bảo mật trong mạng
VPN là điều then chốt và quyết định lớn đến sự tồn tại của công nghệ này.

Hiện nay công nghệ VPN cung cấp các cơ chế bảo mật sau:

Tường lửa (firewall) thực thi các kĩ thuật phòng thủ vòng ngoài và là rào chắn vững chắc giữa
mạng riêng và Internet. Bạn có thể thiết lập các tường lửa để hạn chế số lượng cổng mở, loại gói
tin và giao thức được chuyển qua. Firewall không chỉ kiểm tra kĩ lưu lượng vào mà còn kiểm tra
với cả lưu lượng ra vì vậy đẩm bảo mức độ bảo mật cao.

Mật mã truy cập là khi một máy tính mã hóa dữ liệu và gửi nó tới một máy tính khác thì chỉ có
máy đó mới giải mã được. Có hai loại là mật mã riêng và mật mã chung.

Mật mã riêng (Symmetric-Key Encryption): Mỗi máy tính đều có một mã bí mật để mã hóa gói
tin trước khi gửi tới máy tính khác trong mạng. Mã riêng yêu cầu bạn phải biết mình đang liên hệ
với những máy tính nào để có thể cài mã lên đó, để máy tính của người nhận có thể giải mã
được.

Mật mã chung (Public-Key Encryption) kết hợp mã riêng và một mã công cộng. Mã riêng này
chỉ có máy của bạn nhận biết, còn mã chung thì do máy của bạn cấp cho bất kỳ máy nào muốn
liên hệ (một cách an toàn) với nó. Để giải mã một message, máy tính phải dùng mã chung được
máy tính nguồn cung cấp, đồng thời cần đến mã riêng của nó nữa. Có một ứng dụng loại này
được dùng rất phổ biến là Pretty Good Privacy (PGP), cho phép bạn mã hóa hầu như bất cứ thứ
gì.

Mã hóa dữ liệu: Thực thi các cơ chế mã hóa dữ liệu nhằm đảm bảo tính xác thực, tính toàn vẹn
và tính tin cậy của dữ liệu khi truyền qua môi trường không tin cậy. Giao thức bảo mật giao thức
Internet (IPSec) cung cấp những tính năng an ninh cao cấp như các thuật toán mã hóa tốt hơn,
quá trình thẩm định quyền đăng nhập toàn diện hơn.

IPSec có hai cơ chế mã hóa là Tunnel và Transport. Tunnel mã hóa tiêu đề (header) và kích thước
của mỗi gói tin còn Transport chỉ mã hóa kích thước. Chỉ những hệ thống nào hỗ trợ IPSec mới
có thể tận dụng được giao thức này. Ngoài ra, tất cả các thiết bị phải sử dụng một mã khóa chung
và các tường lửa trên mỗi hệ thống phải có các thiết lập bảo mật giống nhau. IPSec có thể mã
hóa dữ liệu giữa nhiều thiết bị khác nhau như router với router, firewall với router, PC với router,
PC với máy chủ.

8
Máy chủ AAA

AAA là viết tắt của ba chữ Authentication (thẩm định quyền truy cập), Authorization (cho phép)
và Accounting (kiểm soát). Các server này được dùng để đảm bảo truy cập an toàn hơn. Khi yêu
cầu thiết lập một kết nối được gửi tới từ máy khách, nó sẽ phải qua máy chủ AAA để kiểm tra.
Các thông tin về những hoạt động của người sử dụng là hết sức cần thiết để theo dõi vì mục đích
an toàn.

2.4.2 Tính sẵn sàng và tính tin cây.

Tính sẵn sàng chỉ tổng thời gian tối đa mà người dùng có thể truy cập vào mạng. trong các mạng
riêng và mạng Intranet thời gian này tương đối cao vì toàn bộ cơ sở hạ tầng mạng thuộc quyền sở
hữu riêng và do tổ chức tự quản lý. Mặc dù vậy VPN sử dụng các mạng tương tác trung gian như
Internet vì vậy các các thiết lập dựa trên VPN phụ thuộc nhiều vào mạng trung gian. Mà nhân tố
then chốt trong trường hợp này chính là tính sẵn sàng của các ISP.

Tính tin cậy cũng là một yêu cầu quan trọng của mạng VPN và nó gắn chặt với nhân tố tính sẵn
sàng. Tính tin cậy trong VPN bảo đảm rằng những người dùng cuối được phân phối dữ liệu
trong mọi hoàn cảnh. Cũng như hầu hết các thiết lập mạng khác, tinh tin cậy trong môi trường
dựa trên VPN có thể thể đạt được bằng cách chuyển mạch các gói dữ liệu trên các đường dẫn
khác nếu liên kết đã tạo hoặc thiết bị trong đường bị lỗi. Toàn bộ quá trình này trong suốt với
người dùng cuối. Và có thể đạt được bằng việc thực hiện dư thừa kết nối.

2.4.3 Chất lượng dịch vụ

Chất lượng dịch vụ là khả năng phản hồi trong các hoàn cảnh tới hạn bằng cách gán một tỉ lệ
phần trăm cao của băng thông mạng và các tài nguyên giới hạn lỗi cho các ứng dụng nhạy cảm
với độ trễ và giới hạn của băng thông. Ví dụ như các ứng dụng hội nghị trực tuyến, giao dịch tài
chính…rất nhạy cảm với độ trễ và yêu cầu băng thông lớn đáp ứng liên tục, ổn định .

Chất lượng dịch vụ bao gồm hai yếu tố: Góc trễ và Thông lượng.

• Góc trễ là độ trễ trong một quá trình truyền thông đang tiếp diễn và rất quan trọng với các
ứng dụng âm thanh và video.

• Thông lượng liên quan đến tính sẵn có của băng thông thích hợp cho tất cả các ứng dụng.

Trong VPN QoS đảm bảo nhiều ứng dụng khác nhau có thể chạy trên VPN. Trong cấu trúc VPN,
một chính sách thường được dùng để phân loại ứng dụng, người dùng hoặc nhóm người dùng
dựa vào quyền ưu tiên đã xác định.

9
2.4.4 Khả năng quản trị

Việc kiểm soát hoàn toàn các hoạt động và tài nguyên trong mạng, cùng với việc quản trị thích
hợp là rất quan trọng đặt ra với các đơn vị tổ chức có mạng kết nối toàn cầu. Hầu hết mạng của
các tổ chức ngày nay kết nối với các nguồn tài nguyên của thế giới bằng sự trợ giúp của các ISP
dẫn đến việc không thể kiểm soát được các đầu cuối trong mạng Intranet của một đơn vị vì phải
qua mạng trung gian của các ISP. Nhờ có mạng VPN mà công việc quản trị có thể được phân
chia giữa các tổ chức và ISP.

2.4.5 Khả năng tương thích

VPN sử dụng mạng công cộng để kết nối các đầu cuối ở xa, các mạng trung gian này có thể dựa
trên IP như Internet hoặc cũng có thể trên các công nghệ khác như FR, ATM. Kết quả là VPN có
thể sử dụng tất cả các kiểu công nghệ và các giao thức cơ sở.

Trong trường hợp mạng tương tác trung gian dựa trên IP, VPN phải có khả năng dùng địa chỉ IP
và các ứng dụng IP, để đảm bảo khả năng tương thích với cơ sở hạ tầng trên nền IP, các phương
pháp sau phải được tích hợp vào VPN.

Sử dụng Gateway IP: Gateway IP dịch chuyển các các giao thức không dựa trên IP thành các
giao thức IP. Các thiết bị này có thể là các thiết bị mạng chuyên dụng hoặc các phần mềm ứng
dụng. Gateway IP được cài đặt trên mọi Server thường được dùng để chuyển đổi dòng lưu lượng.

Sử dụng đường hầm: Tạo đường hầm là kĩ thuật đóng gói các gói dữ liệu không IP thành các gói
IP để truyền trên một hạ tầng IP. Các thiết bị cuối khác khi nhân được các gói dữ liệu đã đóng gói
này sẽ xử lý và loại bỏ phần tiêu đề IP để lấy lại dữ liệu gốc.

Sử dụng định tuyến IP ảo (VIPR): VIPR làm việc bằng cách phân vùng logic một router vậ lý tại
vị trí nhà cung cấp dịch vụ sau cùng (Thuộc ISP). Mỗi một phân vùng được cấu hình quản trị
như một Router vật lý để hỗ trợ một VPN. Như vậy ta có thể hiểu mỗi một phân vùng logic được
coi như một router với đầy đủ các chức năng của nó. Kết quả là, phân vùng Router logic có thể
hỗ trợ nhiều giao thức và có khả năng chứa địa chỉ IP riêng. Với các công nghệ và giao thức
không dựa trên IP như ATP, công nghệ đường điện thoại riêng VPT được sử dụng. VPT tương
thích với nhiều giao thức và dựa trên công nghệ chuyển mạch gói. Vì vậy nó sử dụng các kênh
cố định ảo PVC và kênh chuyển mạch ảo SVC cho việc truyền dữ liệu. Các PVC thường được
dùng cho việ liên kết các site trong một mạng riêng hoặc Intranet. SVC thì ngược lại được dùng
để liên kết các site trong một Extranet.

10
2.4.6 Sản phẩm công nghệ dành cho VPN

Tùy vào loại VPN (truy cập từ xa hay điểm-nối-điểm), bạn sẽ cần phải cài đặt những bộ phận
hợp thành nào đó để thiết lập mạng riêng ảo. Đó có thể là:

• Phần mềm cho desktop của máy khách dành cho người sử dụng từ xa.
• Phần cứng cao cấp như bộ xử lý trung tâm VPN hoặc firewall bảo mật PIX.
• Server VPN cao cấp dành cho dịch vụ Dial-up.
• NAS (máy chủ truy cập mạng) do nhà cung cấp sử dụng để phục vụ người sử dụng từ xa
• Mạng VPN và trung tâm quản lý.

2.5 Các kĩ thuật trong mạng VPN

Hầu hết các VPN đều dựa vào kỹ thuật gọi là Tunneling để tạo ra một mạng riêng trên nền
Internet. Về bản chất, đây là quá trình đặt toàn bộ gói tin vào trong một lớp header (tiêu đề)
chứa thông tin định tuyến có thể truyền qua hệ thống mạng trung gian theo những "đường ống"
riêng (tunnel).

Khi gói tin được truyền đến đích, chúng được tách lớp header và chuyển đến các máy trạm cuối
cùng cần nhận dữ liệu. Để thiết lập kết nối Tunnel, máy khách và máy chủ phải sử dụng chung
một giao thức (tunnel protocol). Giao thức của gói tin bọc ngoài được cả mạng và hai điểm đầu
cuối nhận biết. Hai điểm đầu cuối này được gọi là giao diện Tunnel (tunnel interface), nơi gói tin
đi vào và đi ra trong mạng.

Kỹ thuật Tunneling yêu cầu 3 giao thức khác nhau:

• Giao thức truyền tải (Carrier Protocol) là giao thức được sử dụng bởi mạng có
thông tin đang đi qua.
• Giao thức mã hóa dữ liệu (Encapsulating Protocol) là giao thức (như GRE,
IPSec, L2F, PPTP, L2TP) được bọc quanh gói dữ liệu gốc.
• Giao thức gói tin (Passenger Protocol) là giao thức của dữ liệu gốc được
truyền đi (như IPX, NetBeui, IP).

Người dùng có thể đặt một gói tin sử dụng giao thức không được hỗ trợ trên Internet (như
NetBeui) bên trong một gói IP và gửi nó an toàn qua Internet. Hoặc, họ có thể đặt một gói tin
dùng địa chỉ IP riêng (không định tuyến) bên trong một gói khác dùng địa chỉ IP chung (định
tuyến) để mở rộng một mạng riêng trên Internet.

2.5.1 Kỹ thuật Tunneling trong mạng VPN điểm-nối điểm

Trong VPN loại này, giao thức mã hóa định tuyến GRE (Generic Routing Encapsulation) cung
cấp cơ cấu "đóng gói" giao thức gói tin (Passenger Protocol) để truyền đi trên giao thức truyền

11
tải (Carier Protocol). Nó bao gồm thông tin về loại gói tin mà bạn đang mã hóa và thông tin về
kết nối giữa máy chủ với máy khách. Nhưng IPSec trong cơ chế Tunnel, thay vì dùng GRE, đôi
khi lại đóng vai trò là giao thức mã hóa. IPSec hoạt động tốt trên cả hai loại mạng VPN truy cập
từ xa và điểm- nối-điểm. Tất nhiên, nó phải được hỗ trợ ở cả hai giao diện Tunnel.

2.5.2 Kỹ thuật Tunneling trong mạng VPN truy cập từ xa

Với loại VPN này, Tunneling thường dùng giao thức điểm-nối-điểm PPP (Point-to-Point Protocol). Là
một phần của TCP/IP, PPP đóng vai trò truyền tải cho các giao thức IP khác khi liên hệ trên mạng giữa
máy chủ và máy truy cập từ xa. Nói tóm lại, kỹ thuật Tunneling cho mạng VPN truy cập từ xa phụ thuộc
vào PPP.

Các giao thức dưới đây được thiết lập dựa trên cấu trúc cơ bản của PPP và dùng trong mạng
VPN truy cập từ xa.

L2F (Layer 2 Forwarding) được Cisco phát triển. L2 F dùng bất kỳ cơ chế thẩm định quyền truy
cập nào được PPP hỗ trợ.

PPTP (Point-to-Point Tunneling Protocol) được tập đoàn PPTP Forum phát triển. Giao thức này
hỗ trợ mã hóa 40 bit và 128 bit, dùng bất kỳ cơ chế thẩm định quyền truy cập nào được PPP hỗ
trợ.

L2TP (Layer 2 Tunneling Protocol) là sản phẩm của sự hợp tác giữa các thành viên PPTP Forum,
Cisco và IETF. Kết hợp các tính năng của cả PPTP và L2F, L2TP cũng hỗ trợ đầy đủ IPSec.
L2TP có thể được sử dụng làm giao thức Tunneling cho mạng VPN điểm-nối-điểm và VPN truy
cập từ xa. Trên thực tế, L2TP có thể tạo ra một tunnel giữa máy khách và router, NAS và router,
router và router. So với PPTP thì L2TP có nhiều đặc tính mạnh và an toàn hơn.

2.6 Các thành phần trong mạng VPN

2.6.1 Các thành phần của một tunning

• Mạng đích. Là mạng trong đó có chứa tài nguyên, dữ liệu mà người dùng từ xa cần truy
cập đê sử dụng, là những người khởi tạo ra phiên yêu cầu VPN.
• Nút khởi tạo. Người dùng khách hoặc máy chủ tạo phiên kết nối VPN. Nút khởi tạo có
thể là một phần của mạng cục bộ hoặc có thể là người dùng di động.
• HA (Home Agent). Chương trình này thường chú tại các nút mạng (Router) trong mạng
đích và làm nhiệm vụ xác nhận những yêu cầu gửi đến để xác thực chúng từ những host
đã được ủy quyền. Khi xác nhận thành công, HA cho phép thiết lập tunnel.
• FA (Foreign Agent). Chương trinh thường cư chú tại các nút khởi tạo hoặc ở các nút truy
cập mạng của hệ thống mạng. Các nút khởi tạo dùng FA để yêu cầu một phiên VPN từ
HA ở mạng đích.
12
2.6.2 Định dạng gói dữ liệu VPN.

Như đã được mô tả ở phần trước, trước khi gói dữ liệu nguyên gốc được phân phát đến mạng
đích thông qua tunnel, nó đã được mã hóa bởi FA. Gói dữ liệu mã hóa này được đề cập như một
tunneled packet. Định dạng của một tunneled packet được mô tả theo hình bên dưới.

Hình 4: Định dạng của tunneled packet

Như đã thấy ở hình 4, một tunneled packet bao gồm 3 phần:

1. Header of the routable protocol. Phần đầu chứa địa chỉ nguồn (FA) và đích (HA). Bởi
vì quá trình giao dịch thông qua Internet chủ yếu là dựa trên cơ sở IP, phần đầu này là
phần IP header chuẩn phổ biến và chứa địa chỉ IP của FA, HA tham gia trong qua trinh
giao dịch.
2. Tunnel packet header. Phần đầu này chứa 5 phần sau :

• Protocol type. Trường này chỉ ra loại giao thức của gói dữ liệu nguyên gốc (hoặc
pay-load).
• Kiểm tra tổng (Checksum). Phần này chứa thông tin kiểm tra tổng quát liệu gói
dữ liệu có bị mất mát trong suốt qua trình giao dịch. Thông tin này tùy chọn.
• Khóa (Key). Thông tin này được dùng để nhận dạng hoặc xác nhận nguồn thực
của dữ liệu (bộ khởi tạo).
• Số tuần tự (Sequence number). Trường này chứa đựng 1 con số mà chỉ ra số
tuần tự của gói dữ liệu trong một loạt các gói dữ liệu đãvà đang trao đổi.
• Source routing. Trường này chứa đựng thêm thông tin định tuyến, phần này tuỳ
chọn.

3. Payload. Gói dữ liệu nguyên gốc được gửi đến FA bởi bộ khởi tạo. Nó cũng chứa đựng
phần đầu nguyên gốc.

2.7 Hoạt động của VPN

Quá trình tạo đường hầm được chia làm hai giai đoạn cơ bản sau:

13
• Giai đoạn I. Nút khởi tạo (hoặc người dùng từ xa) yêu cầu một phiên làm việc VPN và
được xác nhận bởi HA tương ứng.
• Giai đoạn II. Dữ liệu thực sự được chuyễn qua mạng thông qua tunnel.

Trong giai đoạn I , một kết nối yêu cầu được khởi tạo và những tham số phiên được đàm phán.
(Giai đoạn này cũng có thể được xem như là giai đoạn thiết lập tunnel.) nếu yêu cầu được chấp
nhận và tham số phiên được đàm phán thành công, một tunnel được thiết lập giữa hai nút thông
tin đầu cuối. Điều này xảy ra qua những việc chính sau :

1. Nút khởi tạo gửi yêu cầu kết nối đến vị trí FA trong mạng.
2. FA xác nhận yêu cầu bằng cách thông qua tên truy cập và mật khẩu được cung cấp bởi
người dùng. (Thông thường FA sử dụng các dịch vụ của một máy chủ Remote Access
Dial-Up Services (RADIUS) để xác nhận sự thống nhất của các nút khởi tạo.)
3. Nếu tên truy cập và mật khẩu cung cấp bởi người dùng không hợp lệ, yêu cầu phiên làm
việc VPN bị từ chối. Ngược lại, nếu quá trình xác nhận sự thống nhất của FA thành công,
nó sẽ chuyễn yêu cầu đến mạng đích HA.
4. Nếu yêu cầu được HA chấp nhận, FA gửi login ID đã được mã hóa và mật khẩu tương
ứng đến nó.
5. HA kiểm chứng thông tin đã được cung cấp. Nếu quá trình kiểm chứng thành công, HA
gửi những Register Reply, phụ thuộc vào một số tunnel đến FA.
6. Một tunnel được thiết lập khi FA nhận Register Reply và số tunnel.

Ghi chú :

Nếu 2 điểm đầu cuối không sử dụng cùng giao thức tunneling, một số tham biến cấu hình tunnel
như mã hóa, tham số nén, và cơ chế duy trì tunnel cũng được đàm phán.

Với việc thiết lập tunnel, giai đoạn I được xem như đã xong và giai đoạn II, hay giai đoạn
chuyễn giao dữ liệu, bắt đầu. Quá trình giao dịch trong giai đoạn II này thực hiện qua các bước
sau :

1. Nút khởi tạo bắt đầu chuyển hướng các gói dữ liệu đến FA.
2. FA tạo tunnel header và chèn nó vào từng gói dữ liệu. Thông tin header của giao thức
định tuyến (được đàm phán trong giai đoạn I) sau đó được gắn vào gói dữ liệu.
3. FA chuyển hướng các gói dữ liệu đã mã hóa đến HA bằng cách sử dụng tunnel number đã
được cung cấp.
4. Trong quá trình nhận thông tin mã hóa, HA cởi bỏ tunnel header và header của giao thức
định tuyến, đưa gói dữ liệu trở về dạng nguyên bản của nó.
5. Dữ liệu nguyên gốc sau đó được chuyển hướng đến nút mong muốn cần đến trong mạng.

14
Hình 5: Quá trình truyền dữ liệu qua tunnel

Phần 3: Công Nghệ Mạng Riêng Ảo (VPN)


Như phần trên đã trình bày, việc tạo ra đường hầm và hỗ trợ của nó trong việc đảm bảo an toàn
bảo mật cho các giao dịch qua mạng trung gian không an toàn. Phần này sẽ trình bày về các giao
thức cho phép và hỗ trợ các công nghệ đường hầm này. Giao thức đường hầm là cơ sở để xây
dựng VPN và bảo mật các giao dịch qua mạng VPN. Chức năng tạo giao thức đường hầm hầu
hết được thực thi tại lớp 2 của mô hình OSI.

3.1 Point-to-Point Protocol (PPP).

15
PPP là một giao thức đóng gói dữ liệu thuận tiện trong việc vận chuyển lưu thông mạng thông
qua các kết nối nối tiếp point-to-point. Thuận lợi lớn nhất của PPP là nó có thể hoạt động đem lại
hiệu quả cho bất kỳ Data Terminal Equipment (DTE) hoặc Data Connection Equipment (DCE)
bao gồm EIA/TIA-232-C và ITU-T V.35. một điểm yêu thích nữa của PPP là nó không giới hạn
tỉ lệ giao dịch. Cuối cùng, chỉ thiết bị PPP có thể cho một kết nối kép (2 chiều) có thể đối xứng
hoặc không đối xứng và có thể thao tác theo phương thức chuyễn mạch hoặc chuyên dụng.

Chú ý : EIA/TIA-232-C trước đây được hiểu là RS-232C.

Ngoài việc đóng gói dữ liệu IP và non-IP và nó vận chuyễn qua các kết nối nối tiếp, PPP cũng
đảm nhiệm một số chức năng sau đây :

• Chỉ định và quản lý từ các địa chỉ IP đến các gam dữ liệu non-IP.
• Cấu hình và kiểm tra các kết nối đã được thiết lặp.
• Đóng gói không đồng bộ và đồng bộ các gam dữ liệu.
• Phát hiện lỗi trong suốt quá trình giao dịch.
• Trộn các đa giao thức ở tầng 2.
• Đàm phán các tham số cấu hình tuỳ chọn, như nén và đánh địa chỉ dữ liệu.

PPP thực hiện chức năng này bằng 3 tiêu chuẩn :

• Tiêu chuẩn cho việc đóng gói những gói dữ liệu qua các nối kết điểm-điểm.

Chú ý : Tiêu chuẩn cho việc đóng gói các gói dữ liệu thông qua các kết nối điểm-điểm là phương
thức lỏng lẻo trong giao thức High-Level Data Link Control (HDLC). Ngoài ra, cũng có sự khác
nhau giữa 2 chuẩn. Ví dụ : HDLC phân chia gói dữ liệu ra thành frame, PPP thì không.

• Tiêu chuẩn cho việc thiết lặp, cấu hình, và kiểm tra kết nối điểm-điểm với sự
giúp đở của Link Control Protocol (LCP)
• Tiêu chuẩn cho việc thiết lặp và cấu hình một số các giao thức tầng mạng và
phát hiện lỗi trong suốt quá trình giao dịch dưới hình thức của Network
Control Protocol (NCP) phù hợp.

3.1.1 Quá trình hoạt động PPP

Các hoạt động của PPP được tiến hành theo những phương cách sau :

1. Sau khi đóng gói các gói dữ liệu, nút nguồn (hay bộ khởi tạo) gửi LCP frame thông qua liên
kết điểm-điểm đến nút cần đến.

16
2. Những frame này được dùng để cấu hình kết nối theo tham số xác định và kiểm tra các kết
nối đã được thiết lặp nếu có.

3. Sau khi nút đích chấp nhận yêu cầu kết nối và một kết nối được thiết lặp thành công, những
tùy chọn thuận lợi được đã đàm phán, được xác định bời LCPs.

4. Sau đó nút nguồn gửi các frame NCP để lựa chọn và cấu hình các giao thức tầng mạng.

5. Sau khi các giao thức tầng mạng đã được cấu hình , 2 điểm cuối bắt đầu trao đổi dữ liệu cho
nhau.

Hình 6: Khởi tạo một liên kết PPP và trao đổi dữ liệu

Khi một kết nối được thiết lặp, nó sẽ tồn tại cho đến khi LCP hay NCP frame báo hiệu điểm cuối
liên kết. Nối kết sẽ bị ngắt trong trường hợp nối kết không thành công hoặc có sự can thiệp của
người dùng.

3.1.2 PPP Packet Format

Có 6 trừơng cấu thành một PPP frame :

• Flag. Trường này chỉ định phần đầu và phần đuôi của 1 frame. Chiều dài của trường này
là 1 byte.
• Address. Bởi vì sử dụng kết nối điểm-điểm, PPP không dùng địa chỉ của các nút riêng lẻ.
Do đó, trường này chứa một chuổi số nhị phân 11111111, là địa chỉ broadcast. Chiều dài
của trường này là 1 byte.
• Control. Trường này chứa dãy số nhị phân 00000011, có nghĩa là frame đang mang dữ
liệu của người dùng là một frame thiếu trình tự chỉ ra tính chất quá trình giao dịch không
kết nối của PPP. Chiều dài của trường này là 1 byte.

17
• Protocol. Trường này chỉ ra giao thức của dữ liệu đã được đóng gói trong trường dữ liệu
của frame. Giao thức trong trường này được xác định theo con số đính kèm trong bộ RFC
3232. chiều dài của trường này là 2 byte. The length of the field is two bytes. Tuy nhiên,
cũng có thể là 1 byte nếu cả hai ngang cấp.
• Data. Trường này chứa đựng thông tin hiện tại được trao đổi giữa các nút nguồn và đích.
Chiều dài của trường này rất khác nhau, tuy nhiên chiều dài tối đa của trường này có thể
lên đến 1500 byte.
• FCS (Frame Check Sequence). Trường này chứa đựng trình tự kiểm tra giúp người nhậ
xác nhận chính xác thông tin vừa nhận trong trường dữ liệu. Thông thường, chiều dài của
trường là 2 byte. Tuy nhiên, việc triển khai PPP có thể đạt đến 4 byte FCS nhằm mục
đích tăng khả năng phát hiện lỗi.

Hinh7: Định dạng của PPP frame.

3.1.3 PPP Link Control

Để tăng khả năng thành công khi trao đổi dữ liệu giữa 2 nút, PPP cũng đảm nhiệm chức năng
điều khiển kết nối được thiết lặp giữa hai thông tin đầu cuối. PPP sử dụng LCP trong mục đích
này, sau đây là những chức năng của LCP :

• Giúp đỡ thiết lặp nối kết PPP.


• Cấu hình các nối kết đã được thiết lặp nhằm đáp ứng các yêu cầu của các bên thông tin.
• Thực hiện chức năng bảo trì thường xuyên các kết nối PPP.
• Kết thúc nối kết nếu dữ liệu trao đổi giữa hai đầu cuối hoàn thành.

Chú ý :

Trong PPP, thuật ngữ “link” (nối kết) đại diện cho kết nối điểm-điểm.

LCP dựa trên điều khiển kết nối xảy ra trong 4 giai đoạn, giai đoạn thiết lặp kết nối và đàm
phán, giai đoạn xác định chất lượng kết nối, giai đoạn đàm phán giao thức tầng mạng, và giai
đoạn kết thúc kết nối. Mô tả dưới đây tổng kết lại 4 giai đoạn điều khiển kết nối :

Link establishment and negotiation. Trước khi có bất kỳ sự trao đổi dựa trên PPP có thể xảy ra
giữa 2 nút nguồn và đích, LCP phải thiết lặp (mở) kết nối giữa 2 đầu cuối và đàm phán các tham
số cấu hình. LCP dùng Link-establishment frames cho mục đích này. Khi mỗi đầu cuối trả lại với
chính Configuration-Ack frame của nó, giai đoạn này kết thúc.

18
Link quality determination. Giai đoạn này là giai đoạn tùy chọn, nhằm xác định xem chất
lượng của kết nối đã sẵn sàng cho các giao thức tầng mạng không.

Network-layer protocol negotiation. Trong giai đoạn này, dữ liệu của giao thức tầng dưới (tầng
Network) mà đã được đóng gói trong trường Protocol của PPP frame được đàm phán.

Link termination. Đây là giai đoạn cuối cùng của LCP và dùng để kết thúc kết nối PPP đã thiết
lặp trước giữa hai đầu cuối. Công việc kết thúc kết nối có thể diễn ra suôn sẽ, tế nhị và cũng có
thể đột ngột, bất thình lình. Sự ngắt kết nối tế nhị xảy ra sau khi dữ liệu trao đổi giữa hai đầu
cuối hoàn thành, hoặc ở yêu cầu của một trong hai bên (đầu cuối). Một sự kiện vật lý, như mất
người vận chuyễn hoặc hết thời hạn của một khoảng thời gian nhàn rổi, sự ngắt kết nối bất thình
lình sẽ xảy ra. Link-termination frames được trao đổi giữa các bên có liên quan trước khi bị ngắt
kết nối.

Ngoài Link-establishment và Link-termination frames, PPP sử dụng một loại frame thứ 3 được
gọi là Link-maintenance frames. Những frame này, giống như tên gợi ra, được trao đổi trong
những vấn đề có liên kết nối và dùng để quản lý và debug các kết nối PPP.

Ngày nay mặc dù không được sử dụng như VPNs, công nghệ PPP là nguyên tắc cơ bản cho các
giao thức tunneling khác sử dụng rộng rãi trong VPNs. Thật vậy, tất cả các giao thức tunneling
phổ biến đều dựa trên PPP và đóng gói PPP frames vào IP hay các datagram khác cho việc giao
dịch thông qua mạng trung gian.

3.2 Point-to-Point Tunneling Protocol (PPTP)

PPTP là một giải pháp độc quyền cung cấp khả năng bảo mật giữa remote client và enterprise
server bằng việc tạo ra một VPN thông qua một IP trên cơ sở mạng trung gian. Được phát triển
bởi PPTP Consortium (Microsoft Corporation, Ascend Communications, 3COM, US Robotics,
và ECI Telematics), PPTP được đưa ra dựa trên yêu cầu VPNs thông qua mạng trung gian không
an toàn. PPTP không những tạo điều kiện dễ dàng cho việc bảo mật các giao dịch thông qua
TCP/IP trong môi trường mạng chung, mà còn qua mạng riêng intranet.

Chú ý:

Khi Microsoft sử dụng vai trò khóa trong sự phát triển của PPTP, tất cả các sản phẩm về mạng
của Microsoft, như Windows NT 4.0 (server và workstation editions) và Windows 2000, hổ trợ
PPTP natively.

1. Công dụng của PSTNs (Public Switched Telephone Networks). PPTP cho phép sử
dụng PSTNs cho việc triển khai VPNs. Kết quả là, quá trình xử lý sự phát triển VPN đặc

19
biệt đơn giản và tổng chi phí cho việc triển khai thì khá thấp. Đối với những doanh
nghiệp có kết nối mạng diện rộng dựa trên các đường thuê bao leased line được loại bỏ.
2. Hỗ trợ giao thức Non-IP. PPTP cũng hổ trợ một số giao thức triển khai mạng thông
thường khác như TCP/IP, IPX, NetBEUI, và NetBIOS.

3.2.1 Vai trò của PPP trong giao dịch PPTP

PPTP là phần mở rộng của PPP, nó không thay đổi công nghệ PPP. Nó chỉ định nghĩa một
phương pháp mới trong việc vận chuyển lưu lượng VPN thông qua một mạng chung không an
toàn. Khá giống PPP, PPTP cũng không hổ trợ đa kết nối, tất cả các kết nối PPTP đều ở dạng
điểm-điểm. PPP thực hiện một số chức năng giao dịch dựa trên PPP :

• Thiết lặp và kết thúc các kết nối vật lý giữa 2 đầu cuối thông tin.
• Xác thực PPTP clients.
• Mã hóa IPX, NetBEUI, NetBIOS, TCP/IP datagrams để tạo ra PPP datagrams và bảo mật
dữ liệu trao đổi giữa các bên có liên quan.

Chú ý:

PPP có thể sử dụng một số cơ chế xác nhận như cleartext, encrypted, hoặc Microsoft-encrypted
cho việc xác nhận các PPTP clients.

Hình 8: The three responsibilities of PPP in a PPTP transaction.

Chú ý: vai trò của PPP rất giống L2F và L2TP trong quá trinh giao dịch.

3.2.2 Các thành phần của quá trình giao dịch PPTP

Bất kỳ quá trình giao dịch nào dựa trên PPTP triển khai ít nhất 3 thành phần, các thành phần đó
là :

20
1. PPTP client
2. Network Access Server (NAS)
3. PPTP server

Hình 9: A PPTP tunnel and the three components of PPTP-based transactions.

3.2.2.1 PPTP Clients

Một PPTP client là một nút mạng hổ trợ PPTP và có thể yêu cầu những nút khác cho một phiên
VPN. Nếu kết nối được yêu cầu từ một remote server. PPTP client phải sử dụng dịch vụ của
ISP’s NAS. Vì lý do đó, client phải dùng modem để kết nối vào kết nối PPP tới nhà ISP. PPTP
client cũng phải được kết nối vào thiết bị VPN để có thể tunnel yêu cầu (và dữ liệu tiếp theo, nếu
yêu cầu được chấp nhận) đến thiết bị VPN trên mạng từ xa. Kết nối đến các thiết bị VPN từ xa
sử dụng kết nối quay số đầu tiên đến ISP’s NAS để thiết lặp một tunnel giữa hai thiết bị VPN
thông quan Internet hoặc các mạng trung gian khác.

Không giống những yêu cầu cho các phiên kết nối VPN từ xa, yêu cầu cho một phiên VPN đến
một mạng cục bộ không yêu cầu một kết nối đến ISP’s NAS. Cả client và server đều đã được kết
nối về mặt vật lý, việc tạo ra một kết nối đến ISP’s NAS là không cần thiết. Client, trong trường
hợp này, chỉ yêu cầu các phiên kết nối quay số bằng thiết bị VPN trên server.

Khi các gói dữ liệu yêu cầu định tuyến cho một yêu cầu từ xa và một yêu cầu kết nối cục bộ khác
nhau, gói dữ liệu được gắn kèm với 2 yêu cầu được xử lý khác nhau. Gói dữ liệu PPTP đến một
server cục bộ mà được đặt trên thiế bị vật lý trung gian gắn kèm card mạng của PPTP client.
Ngược lại, gói dữ liệu PPTP đến remote server được định tuyến thông qua phương tiện truyền
thông vật lý được gắn kèm trong thiết bị thông tin, chẳng hạn như router.

3.2.2.2 PPTP Servers

PPTP Servers là những nút mạng hổ trợ PPTP và có khả năng duy trì cá c yêu cầu cho các
phiên VPN từ những nút khác (từ xa hoặc nội bộ). Để đáp lại những yêu cầu từ xa, những server
phải hổ trợ khả năng định tuyến

21
3.2.2.3 PPTP Network Access Servers (NASs)

PPTP NASs được đặt tại nhà cung cấp dịch vụ ISP và cung cấp kết nối Internet đến các client sử
dụng PPP để quay số. Khả năng có nhiều client đồng thời đưa ra yêu cầu phiên một VPN là rất
cao, những server phải có khả năng hổ trợ đồng thời nhiều client. Hơn nữa, PPTP client không bị
hạn chế với các hệ điều hành không phải của Microsoft. Do đó, PPTP NASs có khả năng xữ lý
dùng nhiều hệ điều hành khác nhau như Microsoft's Windows, Unix, và Apple's Macintosh.

3.2.3 Quá trình xữ lý PPTP

PPTP tận dụng 3 quá trình xữ lý để bảo đảm cho thông tin liên lạc PPTP thông qua môi trường
không an toàn. Những quá trình đó là :

• Quá trình thiết lặp kết nối PPP


• Điều khiển kết nối
• PPTP tunneling và trao đổi dữ liệu

3.2.3.1 Điều khiển kết nối PPTP

Sau khi kết nối PPP giữa PPTP client và server được thiết lặp, quá trình điều khiển PPTP bắt đầu.
Như hình 5-7, PPTP connection control được thiết lặp dựa trên cơ sở địa chỉ IP của client và
server, sử dụng cổng TCP động và chiếm giữ cổng TCP 1723. Sau khi quá trình điều khiển kết
nối được thiết lặp, các thông tin điều khiển và quản lý sẽ được trao đổi giữa các bên có liên quan
trong quá trình giao tiếp. Những thông tin đảm nhiệm vai trò bảo trì, quản lý và kết thúc PPP
tunnel. Những thông điệp này là những thông điệp có định kỳ bao gồm "PPTP-Echo-Request,
PPTP-Echo-Reply" dùng để giúp đỡ trong việc dò tìm các kết nối PPTP hư hỏng giữa server và
client.

Hình 10: Exchanging PPTP control messages over a PPP connection.

Một số thông điệp phổ biến được dùng trong việc điều khiển PPTP được thể hiện ở bảng sau :

22
Bảng 3-1 : một số thông điệp phổ biến trong PPTP Control
Tên Mô tả
Start-Control- Yêu cầu từ PPTP client để thiết lặp kết nối điều khiển.
Connection-Request
Start-Control- Hồi đáp từ PPTP server đến thông điệp Start-Control-Connection-Request
Connection-Reply từ client.
Outgoing-Call-Request Yêu cầu từ PPTP client đến server để thiết lặp một PPTP tunnel.
Outgoing-Call-Reply Hồi đáp từ PPTP server đến thông điệp Outgoing-Call-Request của client.
Echo-Request Cơ chế duy trì của client hoặc server. Nếu bên đối diện không hồi đáp lại
thông điệp, tunnel sẽ được ngắt.
Echo-Reply Hồi đáp lại thông điệp Echo-Request từ bên yêu cầu.
Set-Link-Info Thông điệp tùy chọn từ một bên có liên quan PPP.
Call-Clear-Request Thông điệp từ PPTP client khởi tạo quá trình kết thúc của tunnel.
Call-Disconnect-Notify Hồi đáp từ server đến Call-Clear-Request của client. Nó cũng được xem
là thông điệp từ server khởi tạo quá trình kết thúc tunnel.
WAN-Error-Notify Thông điệp từ PPTP server đến tất cả các PPTP client nhằm thông báo lỗi
trong PPP interface của server.
Stop-Control- Thông điệp từ PPTP client hoặc server thông báo một sự kết thúc khác
Connection-Request trong qua trình kết thúc kết nối điều khiển.
Stop-Control- Hồi đáp từ phíaa đối diện đến thông điệp Stop-Control-Connection-
Connection-Reply Request.

As depicted in Figure 5-8, PPTP control messages are encapsulated in TCP datagrams.
Therefore, after the establishment of a PPP connection with the remote server or client, a TCP
connection is established. This connection is subsequently used to exchange PPTP control
messages.

Hình 11: PPTP control in the TCP datagram.

3.2.3.2 Quá trình tạo đường hầm dữ liệu và xữ lý PPTP.

Một gói dữ liệu PPTP phải trãi qua nhiều giai đoạn đóng gói, bao gồm những giai đoạn sau:

1. Quá trình đóng gói dữ liệu. Thông tin nguyên bản (tối đa) được mã hóa và được đóng
gói bên trong một PPP frame. Một PPP header được thêm vào frame.
23
2. Quá trình đóng gói các PPP frame. Tổng hợp các PPP frame sau đó đóng gói bên trong
một Generic Routing Encapsulation (GRE) đã được sửa đổi. GRE header chứa trường 4-
byte Acknowledgement và một bit Acknowledgement hồi đáp. Ngoài ra, trường khóa
trong GRE frame được thay thế bằng trường 2 byte long gọi chiều dài tối đa và 2 byte
long được xem là ID. PPTP client xây dựng những trường này khi nó tạo ra PPTP tuunel.

3. Quá trình đóng gói GRE. Kết tếp, một IP header đã được đóng gói bên trong gói GRE
được thêm vào PPP frame. Phần IP header này chứa dựng địa chỉ IP nguồn của PPTP
client và đích của server.

4. Quá trình đóng gói tầng Data Link. PPTP là một giao thức tạo đường hầm nằm ở tầng 2.
Vì vậy, phần header của Data Link và phần đuôi giữ vai trò quan trọng trong việc tạo
đường hầm cho dữ liệu. Trước khi được đặt vào môi trường truyền thông, tầng Data Link
thêm phần đầu và đuôi của nó vào gói dữ liệu. Nếu gói dữ liệu được truyền qua PPTP
tunnel cục bộ, gói dữ liệu được đóng gói bằng phần đầu và đuôi theo công nghệ LAN
(như Ethernet). Ơû một khía cạnh khác, nếu tunnel được đáp lại thông qua một kết nối
WAN, phần đầu và đuôi mà được thêm vào gói dữ liệu một lần nữa thì không thay đổi.

Hình 12: The process of PPTP data tunneling.

Chú ý :

GRE là một cơ chế đóng gói đơn giản, nhẹ cân, đa năng cho dữ liệu trên cơ sở. GRE thường
được dùng bởi nhà cung cấp ISPs dùng để chuyển hướng thông tin định tuyến bên trong mạng
Intranet của họ. Tuy nhiên, các internet backbone router trong mạng Intranet của ISP trích lọc lưu
lượng GRE này. Do đó, PPTP tunnel đã được thiết lặp có thể bảo đảm và bí mật chuyển đến cho
người nhận.

24
Khi dữ liệu PPTP được chuyển thành công đến người nhận mong muốn, người nhận phải xữ lý
gói dữ liệu đã tunnel trích ra thành dữ liệu nguyên bản. Quá trình xữ lý trích xuất PPTP-tunneled
data một cách chính xác công việc phục hồi dữ liệu PPTP đã tạo hầm. Như hình 5-10, để nhận
được dữ liệu nguyên gốc người nhận theo những bước sau :

1. Người nhận xữ lý và gở bỏ phần đầu và phần đuôi của tầng Data Link header mà đã được
thêm vào bởi người gửi.
2. Kế tiếp, phần đầu GRE được gở bỏ.
3. Phần đầu IP được xữ lý và được gở bỏ.
4. Phần đầu PPP được xữ lý và được gở bỏ.

Cuối cùng, thông tin nguyên bản được giải mã (nếu yêu cầu).

Phần 4: Triển khai hệ thống VPN


4.1 Mô tả mô hình

Mô hình triển khai VPN sử dụng phần mềm nguồn mở OPENVPN theo kiểu client/server sử
dụng mật mã X509 PKI (Mã công khai sử dụng chứng chỉ và mã dành riêng). Sử dụng 2 tùy
chọn routed và bridged VPN. Xét một các tổng quan thì lựa chọn chế độ Routing là phù hợp
với số đông người sử dụng bởi khả năng dễ dàng trong triển khai và cài đặt hơn chế độ
bridging. Chế độ Routing cũng cung cấp khả năng tuyệt với cho việc điều khiển truy cập của
client. Chế độ briding chỉ nên được lựa chọn trong một số trường hợp đặc biệt như thực hiện
kết nối trên các loại giao thức khác IP như là IPX, ứng dụng trên mạng VPN yêu cầu sử dụng
địa chỉ quảng bá (broadcast) để yêu cầu thông tin truyền thông (Lan Game) và trong trường
hợp bạn mong muốn sử dụng các dịch vụ Samba hoặc WINS.

4.2 Thiết lập máy chủ CA (Certificate Authority) cho máy chủ OpenVPN
và các máy khách.
4.2.1 Bước đầu tiên là cấu hình OpenVPN kết hợp với PKI (public key infrastructure).

PKI bao gồm:

• Chuẩn bị một chứng nhận điện tử ( Biết đến như là khóa công khai) và một
khóa dành riêng cho máy chủ và các máy khách.
• Tạo một chứng nhật điện tử chủ (CA) và một khóa làm mật hiệu cho mỗi
chứng nhận của máy chủ và khách.

OpenVPN hỗ trợ khả năng xác thực hai chiều dựa trên chứng nhật điện tử, có nghĩa rằng máy
khách phải xác thực với máy chủ và ngược lại may chủ cũng phải xác thực lại với máy khách
trước khi một kết nối an toàn được khởi tạo.

4.2.2 Tạo Certificate Authority (CA) certificate & key

Trong bài Lab này chúng ta sẽ sinh một chứng chỉ gốc (Master Certificate Authority), một
25
chứng nhận cho máy chủ và 3 chứng nhận cho máy khách..

Giả sử máy chủ là Linux và Windows ta thực hiện các bước sau để sinh key.

Tạo CA certificate và key

Trên Linux
. ./vars
./clean-all
./build-ca

Trên Windows:

vars
clean-all
build-ca

Câu lệnh cuối cùng để tạo CA certificate và key bằng việc kết hợp với câu lệnh openssl .
ai:easy-rsa # ./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [KG]:
State or Province Name (full name) [NA]:
Locality Name (eg, city) [BISHKEK]:
Organization Name (eg, company) [OpenVPN-TEST]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
Email Address [me@myhost.mydomain]:
Chú ý: Các tùy chọn đưa ra có thể đặt theo mặc định hoặc do người dùng tự quy định. Duy
nhất một tham số yêu cầu phải nhập vào một cách rõ ràng là Common Name “FNC-CA”

Tạo certificate & key cho server

Trên Linux

./build-key-server server

26
Trên Windows:

build-key-server server

Thực hiện các bước tương tự như cách trên.

Tạo certificates & keys cho 3 clients

Trên Linux

./build-key test1
./build-key test2
./build-key test3

Trên Windows:

build-key test1
build-key test2
build-key test3

Tạo tham số Diffie Hellman

Tham số Diffie Hellman phải được tạo ra trên máy chủ OpenVPN.

Trên Linux

./build-dh

Trên Windows:

build-dh

Đầu ra:
ai:easy-rsa # ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
......................................

Tệp keys

Bảng dưới đây mô tả các tệp key, vị trí chức năng của chúng.

27
Tên tệp
Phục vụ
cho
Mục đích
Giữ bí
mật

ca.crt
server + all
clients
Root CA
certificate
NO

ca.key
key
signing
machine
only
Root CA
key
YES

dh{n}.pem
server only
Diffie
Hellman
parameters
NO

server.crt
server only
Server
Certificate
NO

server.key
server only
Server Key
YES

test1.crt
test1 only 28
4.3.1 Tệp cấu hình cho máy chủ

sample-config-files/server.conf
#################################################
# Sample OpenVPN 2.0 config file for #
# multi-client server. #
# #
# This file is for the server side #
# of a many-clients <-> one-server #
# OpenVPN configuration. #
# #
# OpenVPN also supports #
# single-machine <-> single-machine #
# configurations (See the Examples page #
# on the web site for more info). #
# #
# This config should work on Windows #
# or Linux/BSD systems. Remember on #
# Windows to quote pathnames and use #
# double backslashes, e.g.: #
# "C:\\Program Files\\OpenVPN\\config\\foo.key" #
# #
# Comments are preceded with '#' or ';' #
#################################################

# Which local IP address should OpenVPN


# listen on? (optional)
;local a.b.c.d

# Which TCP/UDP port should OpenVPN listen on?


# If you want to run multiple OpenVPN instances
# on the same machine, use a different port
# number for each one. You will need to
# open up this port on your firewall.
port 1194

# TCP or UDP server?


;proto tcp
proto udp

# "dev tun" will create a routed IP tunnel,


# "dev tap" will create an ethernet tunnel.
# Use "dev tap0" if you are ethernet bridging
# and have precreated a tap0 virtual interface
# and bridged it with your ethernet interface.
# If you want to control access policies
# over the VPN, you must create firewall
# rules for the the TUN/TAP interface.
# On non-Windows systems, you can give
# an explicit unit number, such as tun0.
# On Windows, use "dev-node" for this.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
29
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name


# from the Network Connections panel if you
# have more than one. On XP SP2 or higher,
# you may need to selectively disable the
# Windows firewall for the TAP adapter.
# Non-Windows systems usually don't need this.
;dev-node MyTap

# SSL/TLS root certificate (ca), certificate


# (cert), and private key (key). Each client
# and the server must have their own cert and
# key file. The server and all clients will
# use the same ca file.
#
# See the "easy-rsa" directory for a series
# of scripts for generating RSA certificates
# and private keys. Remember to use
# a unique Common Name for the server
# and each of the client certificates.
#
# Any X509 key management system can be used.
# OpenVPN can also use a PKCS #12 formatted key file
# (see "pkcs12" directive in man page).
ca ca.crt
cert server.crt
key server.key # This file should be kept secret

# Diffie hellman parameters.


# Generate your own with:
# openssl dhparam -out dh1024.pem 1024
# Substitute 2048 for 1024 if you are using
# 2048 bit keys.
dh dh1024.pem

# Configure server mode and supply a VPN subnet


# for OpenVPN to draw client addresses from.
# The server will take 10.8.0.1 for itself,
# the rest will be made available to clients.
# Each client will be able to reach the server
# on 10.8.0.1. Comment this line out if you are
# ethernet bridging. See the man page for more info.
server 10.8.0.0 255.255.255.0

# Maintain a record of client <-> virtual IP address


# associations in this file. If OpenVPN goes down or
# is restarted, reconnecting clients can be assigned
# the same virtual IP address from the pool that was
# previously assigned.
ifconfig-pool-persist ipp.txt

# Configure server mode for ethernet bridging.


# You must first use your OS's bridging capability
# to bridge the TAP interface with the ethernet

30
# NIC interface. Then you must manually set the
# IP/netmask on the bridge interface, here we
# assume 10.8.0.4/255.255.255.0. Finally we
# must set aside an IP range in this subnet
# (start=10.8.0.50 end=10.8.0.100) to allocate
# to connecting clients. Leave this line commented
# out unless you are ethernet bridging.
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# Push routes to the client to allow it


# to reach other private subnets behind
# the server. Remember that these
# private subnets will also need
# to know to route the OpenVPN client
# address pool (10.8.0.0/255.255.255.0)
# back to the OpenVPN server.
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# To assign specific IP addresses to specific


# clients or if a connecting client has a private
# subnet behind it that should also have VPN access,
# use the subdirectory "ccd" for client-specific
# configuration files (see man page for more info).

# EXAMPLE: Suppose the client


# having the certificate common name "Thelonious"
# also has a small subnet behind his connecting
# machine, such as 192.168.40.128/255.255.255.248.
# First, uncomment out these lines:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# Then create a file ccd/Thelonious with this line:
# iroute 192.168.40.128 255.255.255.248
# This will allow Thelonious' private subnet to
# access the VPN. This example will only work
# if you are routing, not bridging, i.e. you are
# using "dev tun" and "server" directives.

# EXAMPLE: Suppose you want to give


# Thelonious a fixed VPN IP address of 10.9.0.1.
# First uncomment out these lines:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# Then add this line to ccd/Thelonious:
# ifconfig-push 10.9.0.1 10.9.0.2

# Suppose that you want to enable different


# firewall access policies for different groups
# of clients. There are two methods:
# (1) Run multiple OpenVPN daemons, one for each
# group, and firewall the TUN/TAP interface
# for each group/daemon appropriately.
# (2) (Advanced) Create a script to dynamically
# modify the firewall in response to access
# from different clients. See man

31
# page for more info on learn-address script.
;learn-address ./script

# If enabled, this directive will configure


# all clients to redirect their default
# network gateway through the VPN, causing
# all IP traffic such as web browsing and
# and DNS lookups to go through the VPN
# (The OpenVPN server machine may need to NAT
# the TUN/TAP interface to the internet in
# order for this to work properly).
# CAVEAT: May break client's network config if
# client's local DHCP server packets get routed
# through the tunnel. Solution: make sure
# client's local DHCP server is reachable via
# a more specific route than the default route
# of 0.0.0.0/0.0.0.0.
;push "redirect-gateway"

# Certain Windows-specific network settings


# can be pushed to clients, such as DNS
# or WINS server addresses. CAVEAT:
# http://openvpn.net/faq.html#dhcpcaveats
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"

# Uncomment this directive to allow different


# clients to be able to "see" each other.
# By default, clients will only see the server.
# To force clients to only see the server, you
# will also need to appropriately firewall the
# server's TUN/TAP interface.
;client-to-client

# Uncomment this directive if multiple clients


# might connect with the same certificate/key
# files or common names. This is recommended
# only for testing purposes. For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn

# The keepalive directive causes ping-like


# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
# Ping every 10 seconds, assume that remote
# peer is down if no ping received during
# a 120 second time period.
keepalive 10 120

32
# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
# openvpn --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be '0'
# on the server and '1' on the clients.
;tls-auth ta.key 0 # This file is secret

# Select a cryptographic cipher.


# This config item must be copied to
# the client config file as well.
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES

# Enable compression on the VPN link.


# If you enable it here, you must also
# enable it in the client config file.
comp-lzo

# The maximum number of concurrently connected


# clients we want to allow.
;max-clients 100

# It's a good idea to reduce the OpenVPN


# daemon's privileges after initialization.
#
# You can uncomment this out on
# non-Windows systems.
;user nobody
;group nobody

# The persist options will try to avoid


# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun

# Output a short status file showing


# current connections, truncated
# and rewritten every minute.
status openvpn-status.log

# By default, log messages will go to the syslog (or


# on Windows, if running as a service, they will go to
# the "\Program Files\OpenVPN\log" directory).
# Use log or log-append to override this default.
# "log" will truncate the log file on OpenVPN startup,
# while "log-append" will append to it. Use one
# or the other (but not both).

33
;log openvpn.log
;log-append openvpn.log

# Set the appropriate level of log


# file verbosity.
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3

# Silence repeating messages. At most 20


# sequential messages of the same message
# category will be output to the log.
;mute 20

4.3.2 Tệp cấu hình cho máy khách

sample-config-files/client.conf
##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server. #
# #
# This configuration can be used by multiple #
# clients, however each client should have #
# its own cert and key files. #
# #
# On Windows, you might want to rename this #
# file so it has a .ovpn extension #
##############################################

# Specify that we are a client and that we


# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on


# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name


# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

34
# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.


# You can have multiple remote entries
# to load balance between the servers.
remote my-server-1 1194
;remote my-server-2 1194

# Choose a random host from the remote


# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the


# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to


# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)


;user nobody
;group nobody

# Try to preserve some state across restarts.


persist-key
persist-tun

# If you are connecting through an


# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here. See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot


# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt

35
cert client.crt
key client.key

# Verify server certificate by checking


# that the certicate has the nsCertType
# field set to "server". This is an
# important precaution to protect against
# a potential attack discussed here:
# http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server". The build-key-server
# script in the easy-rsa folder will do this.
;ns-cert-type server

# If a tls-auth key is used on the server


# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.


# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.


# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.


verb 3

# Silence repeating messages


;mute 20

4.3.3 Kết quả:


Kết quả trên server OpenVPN.

36
Kết quả phía client:

37
Phần 5: Kết luận
Mục đích mong muốn của công nghệ VPN là việc sử dụng Internet và tính phổ cập của nó. Tuy
nhiên, do Internet là nguồn thông tin công cộng nên có thể được truy cập từ bất kỳ ai, bất kỳ lúc
38
nào, bất kỳ nơi đâu, việc trao đổi thông tin có thể bị nghe trộm dễ dàng, sự truy cập bất hợp pháp
và phá hoại dữ liệu khi trao đổi dữ liệu.

Mục đích chính của VPN là cung cấp bảo mật, tính hiệu quả và độ tin cậy trong mạng trong khi
vẫn đảm bảo cân bằng giá thành cho toàn bộ quá trình xây dựng mạng.

VPN được hiểu là phần mở rộng của một mạng Intranet được kết nối thông qua mạng công cộng
nhằm bảo đảm an toàn và tăng hiệu quả giá thành kết nối giữa hai đầu nối. Cơ chế và độ giới
hạng bảo mật tinh vi cũng được sử dụng để bảo đảm tính an toàn cho việc trao đổi những dữ liệu
dễ bị đánh cắp thông qua một môi trường không an toàn.

5.1.1 Thuận lợi

• Giãm thiểu chi phí triển khai : Chi phí cho VPNs ít hơn đáng kể so với cách giải quyết 
truyền thống
• Giãm chi phí quản lý.
• Cải thiện kết nối.
• An toàn trong giao dịch.
• Hiệu quả về băng thông.
• Enhanced scalability. 

5.1.2 Bất lợi

• Phụ thuộc trong môi trường Internet.
• Thiếu sự hổ trợ cho một số giao thức kế thừa.

39

You might also like