BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
THỰC TẬP TỐT NGHIỆP
TÌM HIỂU VÀ CÀI ĐẶT
OPENVPN
Giảng viên hướng dẫn : ThS: PHAN MAI LINH
Sinh viên thực hiện :
1. KIỀU ĐÌNH LUÂN
2. TRẦN QUỐC VINH
Ngành : Mạng Máy Tính
Khóa : 2009 - 2012
TP. Hồ Chí Minh , tháng 6 năm 2012
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Lời mở đầu
Ngày nay, sự phát triển nhanh chóng của công nghệ thông tin, thế giới ngày càng xích lại
gần nhau hơn! Nhiều công ty đang vượt qua ranh giới cục bộ và khu vực, vươn ra thị
trường thế giới. Nhiều doanh nghiệp có qui mô rộng khắp toàn quốc thậm chí cả trên thế
giới, và tất cả họ đều đối mặt với một nhu cầu thiết thực: một cách thức nhằm duy trì
những kết nối thông tin kịp thời, an toàn và hiệu quả cho dù văn phòng đặt tại bất cứ nơi
đâu.
Kênh leased line (truyền dẫn thông tin thuê riêng) là giải pháp cơ bản cho kết nối mạng
WAN (mạng diện rộng) trên phạm vi khu vực và thế giới. Leased lines, bao gồm: ISDN
(integrated services digital network, 128 Kbps), OC3 (Optical Carrier-3, 155 Mbps) fiber,
đã giúp các công ty mở rộng mạng cục bộ ra nhiều khu vực địa lý cách xa nhau. Những
lợi ích của dịch vụ mang diện rộng như: tốc độ, an toàn và hiệu quả, tuy nhiên việc duy
trì những WAN như thế, và nhất là leased lines, có chi phí rất cao và chi phí này sẽ được
tăng lên theo khoảng cách địa lý giữa các chi nhánh của công ty.
Internet ngày nay đang được phát triển rộng rãi, doanh nghiệp dần dần chuyển sang sử
dụng Internet như một phương tiện giúp họ mở rộng mạng cục của mình. Đầu tiên là
intranets - là những sites được bảo vệ bằng password và sử dụng trong công ty. Giờ đây,
phần lớn các doanh nghiệp đang thiết lập dịch vụ VPN (virtual private network) nhằm
đáp ứng nhu cầu kết nối từ xa giữa nhân viên với văn phòng cũng như giữa các văn
phòng cách xa về địa lý.
VPN (mạng riêng ảo) gồm một mạng LAN chính đặt tại trụ sở chính công ty, các mạng
LAN khác đặt ở văn phòng cách xa trụ sở chính, nhân viên có thể kết nối từ xa đến mạng
nội bộ của công ty thông qua mạng công cộng (thường là internet).
VPN về cơ bản là một mạng cục bộ tận dụng hạ tầng mạng công cộng có sẵn để kết nối
các chinh nhánh của công ty cũng như nhân viên ở cách xa công ty. Thay cho việc sử
dụng kết nối trực tiếp giữa các chi nhánh như leased lines (kênh thuê riêng), VPN sử
dụng các kết nối ảo được thiết lập trong môi trường mạng công cộng như internet từ
mạng riêng của công ty tới các chi nhánh hoặc nhân viên trong công ty ở xa.
Với sự hướng dẫn, giúp đỡ của thầy cô và bạn bè. Chúng em chọn đề tài OpenVPN
(mạng riêng ảo – mã nguồn mở) để nghiên cứu và các giải pháp công nghệ cho đến vấn
đề xây dựng mạng riêng ảo này.
SV. Kiều Đình Luân – Trần Quốc Vinh
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
Chữ ký của GVHD
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
Chữ ký của GVPB
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
MỤC LỤC
OpenVPN
Chương 1: Tổng Quan về VPN ........................................................................................ 1
1.Tổng Quan ..................................................................................................................... 1
1.1. Định nghĩa VPN .................................................................................................... 1
1.2. Lợi ích của VPN .................................................................................................... 2
1.3. Chức năng của VPN .............................................................................................. 3
1.4. Định nghĩa đường hầm và mã hóa ......................................................................... 4
1.5. Mã hóa và giải mã.................................................................................................. 4
2. Các dạng kết nối ảo VPN ............................................................................................. 4
2.1. Remote Access VPNs ............................................................................................ 4
2.1.1. Lợi ích của Remote Access VPNs.................................................................. 4
2.1.1. Bất lợi của Remote Access VPNs .................................................................. 6
2.2. Site-to-Site VPN .................................................................................................... 6
2.2.1. Intranet (VPN nội bộ) ..................................................................................... 8
2.2.1. Extranet VPNs (VPN mở rộng) ...................................................................... 9
3. VPN và an toàn bảo mật trên Internet. ....................................................................... 10
4. An toàn và tin cậy....................................................................................................... 10
Chương 2: Secure Socket Layer (SSL) .......................................................................... 12
Mục tiêu và mô hình SSL............................................................................................... 13
Session và kết nối SSL ................................................................................................... 14
Giao thức SSL record .................................................................................................... 15
Giao thức báo động ....................................................................................................... 18
Giao thức ChangeCipher Spec ....................................................................................... 18
Giao thức bắt tay ............................................................................................................ 18
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Chương 3: OpenVPN ..................................................................................................... 24
Ưu điểm của OpenVPN.................................................................................................. 24
Lịch sử phát triển của OpenVPN ................................................................................... 25
Các phiên bản của OpenVPN ........................................................................................ 25
OpenVPN phiên bản 1.................................................................................................... 25
OpenVPN phiên bản 2.................................................................................................... 27
So sánh các giao thức VPN PPTP và L2TP và OpenVPN ............................................ 28
Chương 4: Hướng dẫn OpenVPN Client to Site trên Ubuntu .................................... 29
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Chương 1: Tổng quan về VPN
1.
Tổng Quan
Ngày nay, Internet đã phát triển mạnh mẽ và nhanh chóng, đáp ứng các nhu cầu của
người sử dụng. Internet có thể kết nối nhiều mạng khác nhau và thông tin được truyền
một cách nhanh chóng mà không bị rào cản nào cả. Người ta sử dụng Router (thiết bị
định tuyến) để kết nối các mạng LAN và mạng WAN với nhau. Các máy tính kết nối
vào Internet thông qua ISP (Internet Service Provider - nhà cung cấp dịch vụ), và nó
được chạy trên nền giao thức chung TCP/IP.
Internet đã mở ra một “thế giới phằng”, những dịch vụ như: Internet TV, giáo dục từ
xa, mua-bán trực tuyến, giao dịch ngân hàng,...v..v... và rất nhiều điều khác đã trở
thành hiện thực. Tuy nhiên, do Internet là mạng công cộng có phạm vi toàn cầu và
không một tổ chức, chính phủ cụ thể nào quản lý nên việc bảo mật và an toàn dữ liệu
cũng như trong việc quản lý các dịch vụ trở nên khó khăn. Từ đó, người ta đã đưa ra
một mô hình mạng mới nhằm đáp ứng những yêu cầu về bảo mật mà vẫn tận dụng lại
hệ thống mạng sẵn có của Internet - đó chính là mô hình VPN (Virtual Private
Network - mạng riêng ảo).
Với VPN, các tính năng như bảo mật dữ liệu, độ tin cậy được đảm bảo mà không cần
phải đầu tư nhiều cho cơ sở hạ tầng. VPN cho phép người sử dụng làm việc ở bất cứ
đâu có kết nối Internet như: tại nhà, các văn phòng, chi nhánh công ty hay ở ngoài
đường đều có thể kết nối an toàn đến mạng nội bộ của tổ chức mình. VPN có thể bảo
mật thông tin giữa các đại lý, người cung cấp, và các đối tác kinh doanh trong môi
trường mạng công cộng. Trong nhiều trường hợp VPN cũng giống như WAN (Wide
Area Network), tuy nhiên đặc tính quyết định của VPN là tận dụng cơ sở hạ tầng sẵn
có của mạng công cộng như Internet mà vẫn đảm bảo tính riêng tư và tiết kiệm.
1.1 Định nghĩa VPN
VPN (Virtual Private Network - mạng riêng ảo) là một mạng dành riêng để kết nối
các máy tính của các công ty, tập đoàn hay các tổ chức với nhau thông qua mạng công
cộng (thường là Internet). Về căn bản, mỗi VPN là một mạng riêng rẽ sử dụng một
mạng chung (thường là internet) để kết nối cùng với các site (các mạng riêng lẻ) hay
nhiều người sử dụng từ xa. Thay cho việc sử dụng một kết nối thực, chuyên dụng như
đường leased line, mỗi VPN sử dụng các kết nối ảo được dẫn đường qua Internet từ
mạng riêng của các công ty tới các site hay các nhân viên từ xa. Để có thể gửi và nhận
dữ liệu thông qua mạng công cộng mà vẫn bảo đảm tính an tòan và bảo mật VPN
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 1
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
cung cấp các cơ chế mã hóa dữ liệu trên đường truyền tạo ra một đường hầm bảo mật
giữa nơi nhận và nơi gửi (Tunnel) giống như một kết nối point-to-point trên mạng
riêng. Để có thể tạo ra một đường ống bảo mật đó, dữ liệu phải được mã hóa hay che
giấu đi chỉ cung cấp phần đầu gói dữ liệu (header) là thông tin về đường đi cho phép
nó có thể đi đến đích thông qua mạng công cộng một cách nhanh chóng. Dữ lịêu được
mã hóa một cách cẩn thận do đó nếu các packet bị bắt lại trên đường truyền công cộng
cũng không thể đọc được nội dung vì không có khóa để giải mã. Liên kết với dữ liệu
được mã hóa và đóng gói được gọi là kết nối VPN. Các đường kết nối VPN thường
được gọi là đường hầm VPN (VPN Tunnel).
Hình 1-1: Mô hình sử dụng VPN
1.2 Lợi ích của VPN
VPN cung cấp nhiều đặc tính hơn so với những mạng truyền thống và những mạng
leased-line. Những lợi ích gồm:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 2
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Chi phí thấp hơn.
Tính linh hoạt: VPN có tính linh hoạt và có thể mở rộng thêm những kiến trúc
mạng hơn là những mạng cổ điển, nếu công ty mở thêm chi nhánh thì việc kết
nối thêm một đường truyền mạng ảo (VPN) tới trung tâm sẽ nhanh chóng và chi
phí tương đối rẻ. VPN có thể dễ dàng kết nối hoặc ngắt kết nối từ xa của những
văn phòng, chi nhánh quốc tế, teleworker (nhân viên làm việc ở xa), ...v....v....
Sử dụng những cấu trúc đường hầm: Sử dụng một giao thức Internet backbone.
Không giống như những PVC tĩnh hợp với kết nối hướng những giao thức như:
Frame Rely và ATM.
Tăng tính bảo mật: các dữ liệu sẽ được mã hóa hoặc bọc một lớp mã hóa dữ liệu
nhầm che giấu đối với những người không có quyền truy cập và những người
dùng có quyền truy cập được phép truy cập.
Hỗ trợ các giao thức TCP/IP.
Bảo mật địa chỉ IP: mọi dữ liệu được truyền đi trên VPN đã được mã hóa. VPN
chỉ sử dụng các địa chỉ bên ngoài Internet. do đó, các điạ chỉ bên trong mạng
riêng được mã hóa.
1.3 Chức năng của VPN
VPN có ba chức năng chính: tính xác thực (Authentication), tính toàn vẹn (Integrity)
và tính bảo mật (Confidentiality).
Tính xác thực: Trước khi thiết lập một kết nối VPN thì cả hai đầu đường hầm
phải xác thực lẫn nhau để khẳng định chính xác đó là đầu đường hầm mà mình
cần trao đổi thông tin.
Tính toàn vẹn: Đảm bảo trong quá trình truyền dữ liệu không bị thay đổi hay có
bất cứ sự xáo trộn nào.
Tính bảo mật: Dữ liệu của người gửi sẽ được mã hóa trước khi truyền qua mạng
công cộng và dữ liệu này sẽ được giải mã ở phía người nhận. Đảm bảo chắc chắn
rằng không một ai có thể truy nhập thông tin trái phép. Thậm chí nếu có lấy
được thì cũng không đọc được vì gói tin đã dược mã hóa.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 3
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
1.4 Định nghĩa “đường hầm” và “mã hóa”
Chức năng chính của một VPN là cung cấp sự bảo mật thông tin bằng cách mã hoá và
chứng thực qua một đường hầm (tunnel)
Định nghĩa đường hầm:
Cung cấp các kết nối logic - điểm nối điểm, các gói dữ liệu được mã hoá và di chuyển
trong một đường hầm riêng biệt qua mạng, làm tăng tính bảo mật thông tin vì dữ liệu
sau khi đã mã hoá sẽ lưu chuyển trong một đường hầm được thiết lập giữa người gửi
và người nhận vì vậy sẽ tránh được sự mất cắp, xem trộm thông tin, đường hầm chính
là đặc tính ảo của VPN.
Các giao thức định đường hầm được sử dụng trong VPN như sau:
L2TP (layer 2 Tunneling Protocol): Giao thức định đường hầm tầng 2
PPTP (Point-to-Point Tunneling Protocol)
(Giao thức định đường hầm điểm nối điểm tầng 2)
L2F (Layer 2 Forwarding) : Giao thức chuyển gói tầng 2
SSL (secure socket layer)
Các VPN nội bộ và VPN mở rộng có thể sử dụng các công nghệ:
IP Sec (IP security – hoạt động ở tầng 3)
GRE (Genenic Routing Encapsulation - hoạt động ở tầng 3)
1.5 Mã hoá và giải mã (Encryption/Deccryption):
Từ nội dung thông tin nguyên bản ở dạng đọc được (clear text hay plain text) thành
một dạng văn bản mật mã vô nghĩa không đọc được (cyphertex), vì vậy nó không có
khả năng đọc được hay khả năng sử dụng bởi những người dùng không được phép.
Giải mã là quá trình ngược lại của mã hoá, tức là biến đổi văn bản đã mã hoá thành
dạng đọc được bởi những người dùng được phép.
2. Các dạng kết nối mạng riêng ảo VPN
2.1 Truy cập VPN (Remote Access VPNs)
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 4
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Remote Access VPNs: cho phép các nhân viên của công ty truy cập từ xa bất cứ lúc
nào bằng Remote, mobile, và các thiết bị truyền thông đến tài nguyên mạng nội bộ
của tổ chức mình.
Người dùng ở xa sử dụng phần mềm Remote Access VPNs để truy cập vào mạng
Intranet của công ty thông qua gateway hoặc VPN concentrator (bản chất là Server).
Vì vậy, giải pháp này thường được gọi là client/server. Từ giải pháp này, người ta
thường sử dụng các công nghệ WAN để tạo lại các đường hầm về mạng HO (Head
Office) của họ.
Trong remote access VPNs người ta còn dùng wireless VPN, tức là một nhân viên có
thể truy cập về mạng của công ty họ thông qua kết nối không dây. Trong thiết kế này,
các kết nối không dây cần phải kết nối về một trạm wireless (Wireless terminal) và
sau đó về mạng của công ty. Trong cả hai trường hợp, phần mềm client trên máy PC
đều cho phép khởi tạo các kết nối bảo mật, còn được gọi là tunnel (đường hầm).
Việc thiết kế quá trình xác thực ban đầu giữa hai đầu đường hầm nhằm để đảm bảo là
yêu cầu được xuất phát từ một nguồn tin cậy. Thông thường giai đoạn ban đầu này
dựa trên cùng một chính sách về bảo mật của công ty. Chính sách này gồm: quy trình
(Procedure), kỹ thuật, server (như là: Remote Authentication Dial-In User Service
[RADIUS], Terminal Access Controller Access Control System Plus [TACACS+])...
Việc triển khai Remote Access VPNs, các chi nhánh văn phòng chỉ cần cài đặt một
kết nối đến ISP (nhà cung cấp dịch vụ) để kết nối đến trụ sở chính của công ty thông
qua mạng công cộng. Thông tin Remote Access Setup được mô tả bởi hình vẽ sau:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 5
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Hình 1-2: Mô hình VPN Remote Access
2.1.1 Lợi ích của Remote Access VPNs:
Việc sử dụng kết hợp với modem không còn nữa và sự cần thiết của RAS
(Remote Access Server).
Quá trình kết nối từ xa đã được tạo điều kiện thuận lợi bởi nhà cung cấp dịch vụ
(Internet Service Provider – ISP). Việc hỗ trợ của nhân viên mạng cho người
dùng cá nhân gần như không còn.
Những kết nối với khoảng cách xa sẽ được thay thế bởi các kết nối cục bộ.
Giảm giá thành chi phí kết nối với khoảng cách xa.
Đây là một kết nối truy cập nội bộ, do vậy tốc độ kết nối sẽ cao hơn so với kết
nối trực tiếp đến những khoảng cách xa.
VPNs cung cấp khả năng truy cập đến trung tâm tốt hơn bởi vì VPNs hỗ trợ dịch
vụ truy cập ở mức độ thấp nhất cho kết nối, dù có nhiều các kết nối truy cập đến
mạng công ty cùng một lúc.
2.1.2 Bất lợi của Remote Access VPNs:
Do truyền trên mạng công cộng rộng lớn như internet, có thể gói tin sẽ bị thất lạc và
truyền chậm.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 6
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
2.2 Site-to-Site VPN
Site-to-site : hay còn gọi là LAN-to-LAN, được áp dụng để cài đặt từ hai mạng hay
nhiều mạng LAN cách xa nhau về mặt địa lý thông qua VPN. Với Site-to-site này,
người sử dụng phải thực hiện chứng thực lần đầu tiên giữa các thiết bị mạng của hai
đầu đường hầm. Khi đó mỗi thiết bị ở đầu đường hầm đóng vai trò như là một
gateway. Các thiết bị VPN chuyên dụng hay các Router và Firewall tương thích với
VPN đều cung cấp các chức năng này.
Hình 1-3: Mô hình VPN Site-to-Site
Site-to-Site VPN là sự kết nối hai mạng riêng lẻ thông qua một đường hầm bảo mật
sử dụng các giao thức PPTP, L2TP, hoặc IPSec.
Kết nối Site-to-Site VPN được thiết kế để tạo một kết nối mạng trực tiếp, hiệu quả.
Có thể kết nối này thông qua Internet hoặc một mạng không được tin cậy.Bảo mật dữ
liệu bằng cách mã hoá dữ liệu trên tất cả các gói dữ liệu khi truyền qua các mạng đó.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 7
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
2.2.1 Intranet (VPN nội bộ)
Hình 1-4: Mô hình Intranet VPN
Intranet VPNs (VPN nội bộ): kết nối các mạng từ trụ sở chính tới các văn phòng và
các chi nhánh ở cách xa nhau thông qua cơ sở hạ tầng mạng công cộng sẵn có như
Internet thành một mạng riêng tư của một tổ chức gồm nhiều công ty và văn phòng
làm việc cách xa nhau về địa lý. Tất nhiên là kết nối này đều được mã hoá dữ liệu khi
truyền thông tin qua lại với nhau.
Những thuận lợi của Intranet:
Chi phí giảm do giảm số lượng Router vì được triển khai theo mô hình WAN
backbone.
Sự hỗ trợ của nhân viên kỹ thuật giảm
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 8
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Bởi vì Internet hoạt động như một kết nối trung gian, nó dễ dàng cung cấp những
kết nối mới ngang hang.
Kết nối nhanh hơn và tốt hơn do chỉ kết nối đến nhà cung cấp dịch vụ, khoảng
cách ngắn nên giảm thiểu chi phí cho việc thực hiện Intranet.
Kết hợp với công nghệ chuyển mạch tốc độ cao như: Frame-Relay, ATM.
Những bất lợi của Intranet:
Trong quá trình truyền trên mạng công cộng hay có những mối de dọa và nguy
cơ tấn công, như denial-of service (tấn công bằng từ chối dịch vụ).
Khả năng mất dữ liệu khi truyền rất cao.
Tốc độ, chất lượng phụ thuộc hoàn toàn vào Internet .
2.2.2 Extranet VPNs (VPN mở rộng)
Từ Intranet người ta mở rộng thêm liên kết các khách hàng, những nhà cung cấp,
những đối tác hay những nhân viên làm việc trong các Intranet qua cơ sở hạ tầng dùng
chung những kết nối gọi là Extranet.
Extranet cho phép truy nhập những tài nguyên mạng cần thiết kế của các đối tác kinh
doanh, chẳng hạn như khách hàng, nhà cung cấp, đối tác những người giữ vài trò quan
trọng trong tổ chức thông qua đường hầm bảo mật.
Hình 1-5: Mô hình Extranet VPN
Một số thuận lợi của Extranet:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 9
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Vì là kết nối thông qua Internet nên có thể lựa chọn nhà cung cấp dịch vụ tuỳ theo
nhu cầu của tổ chức.
Chi phí thấp bởi được bảo trì bởi nhà cung cấp ISP.
Dễ dàng thiết lập, bào trì, sửa chữa.
Dễ dàng triển khai, quản lý và chỉnh sữa thông tin.
Một số bất lợi của Extranet:
Vấn đề về những de dọa tấn công bằng từ chối dịch vụ, bảo mật thông tin vẫn
còn tồn tại.
Tăng thêm về sự xâm nhập tới mạng cục bộ của tổ chức trên Extranet.
Do sử dụng Internet nên khi truyền tùy thuộc vào chất lượng dịch vụ Internet.
3. VPN và an toàn bảo mật trên Internet.
Với sự bùng nổ và mở rộng mạng Internet toàn cầu sẽ ngày càng tăng, hàng tháng có
rất nhiều mạng mới được kết nối vào Internet kèm theo đó là vấn đề làm sao để có thể
đảm bảo an toàn khi trao đổi thông tin trên mạng công cộng như Internet. Sự rò rỉ và
mất cắp thông tin dữ liêu đã gây thiệt hại và ảnh hường rất lớn về kinh tế trên toàn thế
giới. Các loại tội phạm như “hacker” luôn tìm mọi cách để đánh cắp thông tin như:
thẻ tín dụng, tài khoản người dùng, các thông tin kinh tế, chính trị nhạy cảm... của các
công ty, tổ chức hay cá nhân nào đó.
Vậy giải pháp sử dụng mạng riêng ảo VPN sẽ giải quyết vấn đề an toàn và bảo mật
thông tin trên Internet như thế nào ?
Câu trả lời để các tổ chức, các doanh nghiệp, cá nhân cảm thấy yên tâm khi trao đổi
thông tin dữ liệu qua mạng Internet là sử dụng công nghệ mạng riêng ảo VPN.
Thực chất công nghệ chính được sử dụng trong mạng riêng ảo VPN là tạo ra một
đường hầm (tunnel) mã hoá và chứng thực dữ liệu giữa hai đầu kết nối. Các thông tin
dữ liệu sẽ được mã hoá và chứng thực trước khi được truyền trong một đường hầm
riêng biệt, qua đó sẽ tránh được những cặp mắt tò mò của những kẻ muốn đánh cắp
thông tin.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 10
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
4. An toàn và tin cậy.
Có 4 yếu tố ảnh hưởng đến một hệ thống đáng tin cậy:
Tính sẵn sàng: Khả năng sẵn sàng, đáp ứng yêu cầu trong khoảng thời gian.
Tính sẵn sáng dược thực hiện qua những hệ thống phần cứng dự phòng.
Sự tin cậy: Nó định nghĩa xác xuất của hệ thống thực hiện các chức năng của nó
trong một chu kỳ thời gian. Sự tin cậy khác với tính sẵn sàng , nó được đo trong
cả một chu kỳ của thời gian. Nó tương ứng tới tính liên tục của một dịch vụ.
Sự an toàn: Nó chỉ báo hiệu một hệ thống thực hiện những chức năng của nó
chính xác hoặc thực hiện trong trường hợp thất bại một ứng xử không thiệt hại
nào xuất hiện.
Sự an ninh: Sự bảo vệ tất cả các tài nguyên trong hệ thống.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 11
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Chương 2: Secure Socket Layer (SSL)
Bảo mật dữ liệu trong quá trình truyền tải qua Internet ngày càng trở nên cần thiết vì
khối lượng dữ liệu ngày càng tăng và tầm quan trọng trong việc bảo mật dữ liệu.
Ngày nay, mỗi người sử dụng của một mạng công cộng để gửi các loại dữ liệu khác
nhau, từ email cho đến các chi tiết thẻ tín dụng hàng ngày, và vì vậy muốn được bảo
vệ khi dữ liệu qua một mạng công cộng. Để kết thúc vấn đề này, một giao thức SSL
thực tế đã được áp dụng để bảo vệ dữ liệu trong truyền tải bao gồm tất cả các dịch vụ
mạng sử dụng TCP/IP để hỗ trợ các ứng dụng điển hình của giao tiếp giữa máy chủ và
khách hàng.
Các giao thức SSL được phát triển bởi Netscape, để đảm bảo an ninh dữ liệu vận
chuyển và định tuyến thông qua các lớp ứng dụng của HTTP, LDAP hay POP3. SSL
được thiết kế để làm cho việc sử dụng của TCP như là một lớp giao tiếp để cung cấp
một kết nối end-to-end an toàn và đáng tin cậy xác thực giữa hai điểm trên một mạng
(ví dụ giữa khách hàng và máy chủ dịch vụ). Mặc dù SSL này có thể được sử dụng để
bảo vệ dữ liệu trong quá trình truyền tải trong các tình huống liên quan đến bất kỳ
dịch vụ mạng, nó được sử dụng chủ yếu trong máy chủ HTTP và các ứng dụng của
khách hàng. Ngày nay, hầu như mỗi máy chủ HTTP đều có thể hỗ trợ một session
SSL, trong khi trình duyệt IE hoặc trình duyệt Netscape Navigator được cung cấp với
phần mềm khách hàng cho phép SSL.
Hình 2-1: SSL giữa tầng ứng dụng và TCP/IP
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 12
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Mục tiêu và mô hình SSL
Những vấn đề thực hiện mục tiêu SSL? Các mục tiêu chính cho SSL là:
Chứng thực các khách hàng và máy chủ với nhau: các giao thức SSL hỗ trợ việc
sử dụng các kỹ thuật mật mã tiêu chuẩn quan trọng (mã hóa khóa công khai) để
xác thực các bên giao tiếp với nhau. Mặc dù các ứng dụng thường xuyên nhất
bao gồm chứng thực của khách hàng dịch vụ trên cơ sở của một chứng chỉ, SSL
cũng có thể sử dụng các phương pháp tương tự để xác thực khách hàng.
Bảo đảm tính toàn vẹn dữ liệu trong một session làm việc, dữ liệu không thể
được, hoặc cố ý hoặc vô ý giả mạo.
Bảo mật dữ liệu riêng tư: dữ liệu trong vận tải giữa khách hàng và máy chủ phải
được bảo vệ đánh chặn và có thể đọc được chỉ người nhận. Điều kiện tiên quyết
này là cần thiết cho cả các dữ liệu liên kết với các giao thức (đảm bảo giao thông
trong quá trình đàm phán) và các ứng dụng dữ liệu được gửi trong các session
bản thân. SSL là trong thực tế không phải là một giao thức đơn lẻ mà là một tập
hợp các giao thức bổ sung có thể được tiếp tục chia thành hai lớp:
giao thức để đảm bảo an ninh và toàn vẹn dữ liệu: lớp này bao gồm các
giao thức SSL Record,
các giao thức được thiết kế để thiết lập một kết nối SSL: ba giao thức
được sử dụng trong lớp này: SSL Handshake Protocol,
SSL
ChangeCipher Spec Protocol và SSL Alert Protocol.
Hình 2-2: Ngăn xếp giao thức SSL
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 13
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
SSL sử dụng các giao thức này để giải quyết các nhiệm vụ như mô tả ở trên. Các
record của giao thức SSL chịu trách nhiệm cho việc mã hóa dữ liệu và tính toàn vẹn.
Như có thể thấy trong hình, nó cũng được sử dụng để đóng gói dữ liệu được gửi bởi
giao thức SSL khác, và do đó, nó cũng tham gia vào các nhiệm vụ liên kết với các dữ
liệu kiểm tra SSL. Ba giao thức khác bao gồm các lĩnh vực quản lý session, quản lý
tham số mật mã và chuyển giao các thông điệp SSL giữa khách hàng và máy chủ.
Trước khi đi sâu vào một cuộc thảo luận chi tiết hơn về vai trò của giao thức cá nhân
và chức năng của nó cho tôi mô tả hai khái niệm cơ bản liên quan đến việc sử dụng
SSL.
Session và kết nối SSL
Các khái niệm như đã đề cập ở trên là nền tảng cho một kết nối giữa khách hàng và
máy chủ, và nó cũng bao gồm một loạt các thuộc tính. Hãy cố gắng cho một số chi
tiết:
Session: đây là một sự kết hợp giữa một khách hàng và máy chủ một định nghĩa một
tập hợp các thông số như thuật toán được sử dụng, số session... Một SSL session được
tạo ra bởi giao thức bắt tay mà cho phép các thông số được chia sẻ giữa các kết nối
được tạo ra từ máy chủ và khách hàng, và session được sử dụng để tránh đàm phán
của các thông số mới cho mỗi kết nối.
Điều này có nghĩa là một session được chia sẻ giữa nhiều kết nối SSL giữa khách
hàng và máy chủ. Về lý thuyết, nó cũng có thể được nhiều session chia sẻ bởi một kết
nối duy nhất, nhưng tính năng này không được sử dụng trong thực tế. Các khái niệm
về một SSL session và kết nối liên quan đến một vài thông số được sử dụng SSLenable giao tiếp giữa khách hàng và máy chủ. Trong các cuộc đàm phán của giao thức
bắt tay, các phương pháp mã hóa được thành lập và một loạt các thông số của session
status sau đó được sử dụng trong session. Một session state được xác định bởi các
thông số sau:
Session identifier: đây là một định danh được tạo ra bởi máy chủ để xác định
một session với một khách hàng đã chọn
chứng chỉ peer: X.509 chứng chỉ của peer
Phương pháp nén: một phương pháp được sử dụng để nén dữ liệu trước khi mã
hóa
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 14
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Thuật toán đặc điểm kỹ thuật gọi là CipherSpec: xác định các thuật toán mã hóa
dữ liệu số lượng lớn (ví dụ như DES) và thuật toán hash (ví dụ như MD5) được
sử dụng trong session
Master secret: 48-byte dữ liệu là một bí mật được chia sẻ giữa khách hàng và
máy chủ
"Resumable": đây là một lá cờ cho biết liệu session họp có thể được sử dụng để
khởi tạo kết nối mới.
Theo các đặc điểm kỹ thuật, tình trạng kết nối SSL được xác định bởi các thông
số sau:
Máy chủ và khách hàng ngẫu nhiên: dữ liệu ngẫu nhiên được tạo ra bởi
khách hàng và máy chủ cho mỗi kết nối
Máy chủ viết MAC bí mật: khoá bí mật được sữ dụng cho viêc viết dữ
liệu từ máy chủ
Khách hàng viết MAC bí mật: bí mật được sữ dụng cho dữ liệu dược viết
từ khách hàng
Máy chủ viết khoá: chìa khóa mật mã số lượng lớn cho dữ liệu được mã
hóa bởi máy chủ và giải mã từ khách hàng
Khách hàng viết key: chìa khóa mật mã số lượng lớn dữ liệu được mã hóa
bởi khách hàng và giải mã bởi các máy chủ
Số thứ tự: số thứ tự duy trì một cách riêng biệt bởi các máy chủ cho các
tin nhắn được truyền đi và nhận trong session dữ liệu.
Các chữ viết tắt MAC được sử dụng trong định nghĩa trên đây có nghĩa là Message
Authentication Code được sử dụng cho truyền tải dữ liệu trong SSL session. Vai trò
của MAC sẽ được giải thích thêm, khi thảo luận về các giao thức record. Một mô tả
ngắn gọn về các điều khoản cần thiết để có thể giải thích các vấn đề kế tiếp kết nối
với các chức năng của giao thức SSL, cụ thể là giao thức SSL record.
Giao thức SSL record
Giao thức SSL record liên quan đến việc sử dụng SSL một cách an toàn và toàn vẹn
với thông điệp được đảm bảo. Để đạt được mục tiêu này nó được sử dụng bởi các tầng
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 15
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
trên giao thức SSL, mục đích của giao thức SSL record là để có một ứng dụng tin
nhắn được truyền đi, đoạn dữ liệu cần được gửi đi,thì đóng gói nó với headers thích
hợp và tạo ra một đối tượng được gọi là record, đó là mã hóa và có thể được chuyển
tiếp để gửi dưới giao thức TCP.
Bước đầu tiên trong việc chuẩn bị truyền tải dữ liệu ứng dụng bao gồm trong phân
mảnh của nó phá vỡ các luồng dữ liệu được truyền vào 16KB (hoặc nhỏ hơn) các
mảnh dữ liệu tiếp theo là quá trình chuyển đổi của nó trong một bản record. Những
mảnh dữ liệu có thể được tiếp tục nén, mặc dù đặc điểm kỹ thuật giao thức SSL 3.0
bao gồm không có giao thức nén, do đó hiện nay, không có nén dữ liệu được sử dụng.
Tại thời điểm này, tạo ra các record được bắt đầu cho mỗi phần dữ liệu bằng cách
thêm một header, thông tin có thể hoàn thành kích thước dữ liệu cần thiết và MAC.
Các record header được thêm vào mỗi phần dữ liệu bao gồm hai phần cơ bản của
thông tin, cụ thể là chiều dài của hồ sơ và chiều dài của khối dữ liệu thêm vào các dữ
liệu ban đầu.
Trong bước tiếp theo, cấu trúc dữ liệu record bao gồm các yếu tố sau đây:
Dữ liệu chính,
Một số đệm để hoàn thành các gói theo yêu cầu,
Giá trị MAC
MAC thì chịu trách nhiệm về việc xác minh tính toàn vẹn của thông báo được bao
gồm trong record truyền đi. Đó là kết quả của một hàm băm theo một thuật toán băm
cụ thể, ví dụ như MD5 hoặc SHA-1. MAC được xác định như là một kết quả của một
hàm băm nhận được dữ liệu sau đây:
MAC = hàm băm [khóa bí mật, các dữ liệu chính, đệm, số thứ tự].
Một khoá bí mật trong việc tạo ra MAC hoặc một khách hàng viết MAC bí mật hoặc
một máy chủ viết MAC tương ứng, nó phụ thuộc vào bên chuẩn bị gói tin. Sau khi
nhận được các gói dữ liệu, bên nhận tính giá trị của MAC và so sánh nó với gói đã
nhận được. Nếu hai giá trị phù hợp, điều này có nghĩa rằng dữ liệu đã không bị sửa
đổi trong việc truyền tải qua mạng. Chiều dài của MAC thu được theo cách này phụ
thuộc vào phương pháp sử dụng cho việc tính toán của nó. Tiếp theo, các dữ liệu cộng
với MAC được mã hóa bằng cách sử dụng một thuật toán mã hóa đối xứng cài sẵn, ví
dụ DES hoặc triple DES. Cả dữ liệu và MAC đều được mã hóa. Dữ liệu này đã được
chuẩn bị, được gắn với các trường tiêu đề sau đây:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 16
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Loại nội dung: xác định những gì tải trọng được phân phối bởi các gói tin để xác
định các giao thức cao hơn được sử dụng để xử lý dữ liệu trong gói tin. Các giá
trị có thể là change_cipher_spec, cảnh báo, bắt tay, và application_data tham
khảo các giao thức thích hợp.
Session bản chính: thiết lập các phần chính của session bản giao thức được sử
dụng. Đối với SSL 3.0, giá trị là 3.
Session bản nhỏ: thiết lập các phần bổ sung của các session bản được sử dụng
giao thức. Đối với SSL 3.0, giá trị là 0.
Với việc bổ sung các lĩnh vực, quá trình chuẩn bị record được hoàn thành. Sau đó,
record được gửi đến điểm mục tiêu. Toàn bộ quá trình chuẩn bị của các gói tin được
gửi đi được minh họa trong hình sau.
Hình 2-3: Tạo một gói tin theo giao thức SSL record
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 17
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Giao thức SSL Record
Giao thức SSL record được sử dụng để chuyển bất kỳ dữ liệu nào trong một session cả tin nhắn và các giao thức SSL khác (ví dụ như giao thức handshake), cũng như cho
bất kỳ dữ liệu ứng dụng nào.
Giao thức báo động
Giao thức báo động được sử dụng bởi các bên tham gia chuyển tải thông điệp session
kết hợp với trao đổi dữ liệu và chức năng của giao thức. Mỗi tin nhắn trong giao thức
cảnh báo bao gồm hai byte. Các byte đầu tiên luôn luôn có một giá trị, "warning(cảnh
báo)" (1) hoặc "fatal(điềm xấu )" (2), xác định mức độ nghiêm trọng của tin nhắn
được gửi. Gửi một tin nhắn có tình trạng "điềm xấu" bởi một trong hai bên sẽ dẫn đến
chấm dứt ngay lập tức SSL session. Các byte tiếp theo của tin nhắn có chứa một trong
các mã lỗi được xác định, có thể xảy ra trong suốt một giao tiếp SSL session.
Giao thức ChangeCipher Spec
Giao thức này là giao thức SSL đơn giản. Nó bao gồm một tin nhắn duy nhất mang
giá trị là 1. Mục đích duy nhất của tin nhắn này là để gây ra session status chờ để
được thành lập như là một trạng thái cố định, ví dụ, trong việc xác định các thiết lập
sử dụng các giao thức. Đây là loại tin nhắn phải được gửi bởi máy khách đến máy chủ
và ngược lại. Sau khi trao đổi tin nhắn session status được xem là đồng ý. Thông báo
này và bất kỳ thông báo SSL khác được chuyển giao bằng cách sử dụng giao thức
SSL record.
Giao thức bắt tay
Các giao thức bắt tay tạo thành phần phức tạp nhất của giao thức SSL. Nó được sử
dụng để bắt đầu một phiên làm việc giữa máy chủ và máy khách. Trong thông điệp
của giao thức này, các thành phần khác nhau chẳng hạn như các thuật toán và các
khoá được sử dụng để mã hóa dữ liệu được đàm phán .Do giao thức này, nó có thể để
xác thực các bên với nhau và thương lượng các thông số thích hợp của session giữa
chúng.
Quá trình đàm phán giữa khách hàng và máy chủ được minh họa trong hình dưới đây.
Nó có thể được chia thành 4 giai đoạn phân cách với các đường ngang bị hỏng. Trong
giai đoạn đầu tiên, một kết nối hợp lý phải được bắt đầu giữa khách hàng và máy chủ
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 18
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
tiếp theo là đàm phán về các thông số kết nối. Khách hàng sẽ gửi một thông điệp
client_hello chứa dữ liệu như máy chủ:
Phiên bản: phiên bản SSL cao nhất hỗ trợ khách hàng,
Ngẫu nhiên: dữ liệu bao gồm một dấu thời gian 32-bit và 28 byte của dữ liệu
ngẫu nhiên tạo ra. Dữ liệu này được sử dụng để bảo vệ các phiên trao đổi khóa
giữa các bên tham gia kết nối.
Session ID: một số mà nó xác định định danh session. Một giá trị khác 0 của
trường này chỉ ra rằng khách hàng muốn cập nhật các thông số của kết nối hiện
tại hoặc thiết lập một kết nối mới vào session này. Một giá trị số khác 0 trong
trường này chỉ ra rằng khách hàng muốn thiết lập một kết nối mới.
CipherSuite: một danh sách các thuật toán mã hóa và phương pháp trao đổi
khóa được hỗ trợ bởi máy khách.
Máy chủ, trong phản ứng với thông điệp client_hello gửi nhắn server_hello, có
chứa cùng một tập hợp của các lĩnh vực như thông báo của khách hàng, đặt các
dữ liệu sau đây:
Phiên bản: Một số phiên bản thấp nhất của giao thức SSL hỗ trợ bởi máy
chủ,dữ liệu ngẫu nhiên: kiểu tương tự như được sử dụng bởi khách hàng,
nhưng các dữ liệu được tạo ra là hoàn toàn độc lập.
Session ID: nếu các trường của khách hàng là khác không, cùng một giá
trị được gửi trở lại, nếu trường session ID của máy chủ chứa các giá trị
cho một session mới.
CipherSuite: máy chủ sử dụng trường này để gửi một tập hợp các giao
thức được lựa chọn bởi máy chủ từ những đề xuất của khách hàng. Yếu tố
đầu tiên của trường này là một phương pháp được lựa chọn trao đổi các
khoá mã hóa giữa máy khách và máy chủ. Yếu tố tiếp theo là các đặc
điểm kỹ thuật của các thuật toán mã hóa và hàm băm, mà sẽ được sử dụng
trong session được khởi động, cùng với tất cả các thông số cụ thể.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 19
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Tập hợp các thuật toán mã hóa và phương pháp trao đổi khóa được gửi trong trường
CipherSuite thiết lập ba thành phần:
1. phương pháp trao đổi khóa giữa máy chủ và máy khách,
2. các thuật toán mã hóa cho mục đích mã hóa dữ liệu,
3. một chức năng được sử dụng để có được giá trị MAC.
Các máy chủ bắt đầu giai đoạn tiếp theo của cuộc đàm phán bằng cách gửi giấy chứng
chỉ cho khách hàng để xác thực. Các tin nhắn gửi cho khách hàng có chứa một hoặc
một chuỗi của chứng chỉ X509. Đây là những cần thiết để xác thực của cả hai máy
chủ và đường dẫn xác nhận hướng tới một xác nhận chính thức đáng tin cậy của phần
giửa chứng chỉ cho máy chủ. Bước này là không bắt buộc và có thể được bỏ qua, nếu
các phương pháp đàm phán trao đổi khóa không yêu cầu gửi giấy chứng nhận (trong
trường hợp này là phương pháp Diffie-Hellman). Tùy thuộc vào phương pháp đàm
phán trao đổi khóa, máy chủ có thể gửi một tin nhắn bổ sung server_key_exchange,
tuy nhiên không được yêu cầu trong trường hợp phương pháp Diffie-Hellman cố định
hoặc trao đổi kỹ thuật chìa khóa RSA đã được đàm phán. Hơn nữa, các máy chủ có
thể yêu cầu một chứng chỉ từ khách hàng.
Bước cuối cùng của giai đoạn 2 là thông điệp server_done, trong đó không có tham số
và được gửi bởi máy chủ chỉ đơn thuần là để báo hiệu kết thúc của thông điệp máy
chủ. Sau khi gửi thông điệp này, máy chủ chờ đợi một phản hồi của khách hàng. Sau
khi nhận được tin nhắn, khách hàng cần phải xác minh chứng chỉ của máy chủ, chứng
nhận các đường dẫn và dữ liệu cũng như bất kỳ các thông số khác được gửi bởi các
máy chủ trong các thông báo server_hello. Xác minh của khách hàng bao gồm:
Xác nhận ngày kiểm tra chứng chỉ và so sánh với ngày hiện tại, để xác minh xem
chứng chỉ vẫn còn hợp lệ
Kiểm tra liệu phần thân được bao gồm trong danh sách của các cơ quan chứng
nhận đáng tin cậy trong sở hữu của khách hàng. Nếu CA, đã cấp giấy chứng
nhận của máy chủ không được bao gồm trong danh sách các CA, khách hàng cố
gắng để xác minh chữ ký CA. Nếu không có thông tin về CA có thể thu được,
khách hàng chấm dứt các thủ tục xác định bằng cách trả lại tín hiệu báo lỗi hoặc
báo hiệu vấn đề cho người sử dụng để giải quyết nó.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 20
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Xác định tính xác thực của các khoá công cộng của các CA mà đã cấp chứng chỉ
: nếu các Cơ quan chứng nhận được bao gồm trong danh sách đáng tin cậy CA
của khách hàng, khách hàng kiểm tra khóa công cộng của CA ghi trong chứng
chỉ của máy chủ với các khoá công cộng có sẵn từ danh sách. Thủ tục này xác
minh tính xác thực của cơ quan xác nhận.
kiểm tra xem các tên miền được sử dụng trong chứng chỉ có phù hợp với tên
máy chủ thể hiện trong chứng chỉ của máy chủ không.
Sau khi hoàn thành thành công tất cả các bước máy chủ được coi là xác thực. Nếu tất
cả các tham số phù hợp với chứng chỉ của máy chủ một cách chính xác, khách hàng sẽ
gửi đến máy chủ một hoặc nhiều tin nhắn. Tiếp theo là thông điệp client-key-change,
nó phải được gửi để cung cấp các khóa. Nội dung của tin nhắn này phụ thuộc vào
phương pháp đàm phán trao đổi khóa. Hơn nữa, theo yêu cầu của máy chủ, chứng chỉ
của khách hàng được gửi cùng với thông báo cho phép xác minh của chứng chỉ. Thủ
tục này kết thúc giai đoạn 3 của cuộc đàm phán.
Giai đoạn 4 là để xác nhận các thông điệp cho đến nay nhận được và để xác minh xem
các dữ liệu đang chờ là chính xác. Khách hàng gửi một tin nhắn change_cipher_spec
(đang chờ SSL Spec ChangeCipher), và sau đó thiết lập các cơ chế chờ thông số thuật
toán và các khoá vào các thiết lập hiện tại giống nhau. Điều này là để xác nhận rằng
các thông số và dữ liệu đàm phán là chính xác. Các máy chủ phản hồi cho khách hàng
gửi cùng một chuỗi tin nhắn . Nếu được thông báo đã hoàn thành một cách chính xác
được đọc bởi một trong hai bên xác nhận rằng việc truyền dữ liệu, thuật toán thương
lượng và khoá session là chính xác. Điều này cho thấy rằng session đã được chấm dứt
và nó có thể gửi các ứng dụng dữ liệu giữa máy chủ và máy khách, thông qua SSL.
Tại thời điểm này TCP session giữa máy khách và máy chủ đã được đóng, tuy nhiên
trạng thái session được duy trì, cho phép nó tiếp tục thông tin liên lạc trong session
bằng cách sử dụng các thông số được giữ lại.
Đó là giá trị nhận thấy rằng cả giai đoạn 2 và 3 được sử dụng bởi cả hai bên, để xác
minh tính xác thực chứng chỉ của máy chủ và có thể là chứng chỉ của khách hàng
trong các bước bắt tay. Nếu máy chủ không thể được chứng thực thành công từ khách
hàng trên cơ sở chứng chỉ được chuyển giao, bắt tay kết thúc và các khách hàng sẽ tạo
ra một thông báo lỗi. Tương tự sẽ xảy ra ở máy chủ nếu không thể xác nhận tính xác
thực chứng chỉ của khách hàng.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 21
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Thiết lập phiên SSL giữa máy khách và máy chủ (tin nhắn màu đỏ là không bắt buộc).
Hình 2-4: Thiết lập phiên SSL giữa máy khách và máy chủ
Ở cái nhìn đầu tiên, quá trình này có vẻ là hơi phức tạp, tuy nhiên điều này diễn ra tại
mỗi kết nối của máy chủ với một dịch vụ SSL-enable, ví dụ trong khi yêu cầu địa chỉ
của một trang web bắt đầu với HTTPS. Lý do cho những việc này phức tạp này liên
kết với một kết nối SSL là gì? SSL được sử dụng trong nhiều dịch vụ, nhưng chủ yếu
là SSL bảo vệ các kênh liên lạc HTTP trên Internet và do đó giao thức SSL được nhìn
thấy khá thường xuyên như liên kết với các trang www. Như nó đã được đã vừa được
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 22
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
đề cập, các giao thức SSL có thể được sử dụng để bảo vệ việc truyền tải cho bất kỳ
dịch vụ TCP / IP. Ngoài việc truy cập WWW, ứng dụng có thể thứ hai của giao thức
này được kết hợp với việc gửi và nhận email.
Cho các ứng dụng Windows NT/2000/XP, SSL thực tế được sử dụng trong hệ thống
của HTTP và các dịch vụ máy chủ SMTP làm việc kết hợp với IIS.Những máy chủ
này được cho phép yêu cầu thích hợp để tạo ra với chứng chỉ của riêng của người sử
dụng (sử dụng Windows 2000 Server dịch vụ chứng chỉ) hoặc có giấy chứng nhận từ
một trong các CA đáng tin cậy như VeriSign (www.verisgn.com) hoặc Thawte
(www.thawtecom)...
Đối với một mô tả của tiến trình cài đặt của chứng chỉ cho một máy chủ WWW làm
việc kết hợp với IIS Trình duyệt www.faq.net.pl/article.asp?id=237
Trong cùng một cách thức cho máy chủ WWW là có thể có được và cài đặt chứng chỉ
trên một máy chủ SMTP được cung cấp cùng với IIS hoặc có sẵn trong Exchange
2000. Một ứng dụng của SSL để có thể hỗ trợ các dịch vụ khác phụ thuộc vào khả
năng cấu hình kết nối một máy chủ.
Một số cổng của các dịch vụ dựa trên SSL:
HTTPS 443
LDAP 646
NNTP 563
SMTP 465
POP3 995
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 23
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Chương 3: OpenVPN
Với sự ra đời của OpenVPN, một thế hệ mới của VPN. Trong khi các giải pháp VPN khác
thường sử dụng cơ chế độc quyền hoặc không đạt chuẩn, OpenVPN có một khái niệm
mô-đun, cho bảo mật và mạng. OpenVPN sử dụng các cơ chế an toàn, ổn định, và
SSL/TLS và kết hợp lại để tạo độ tin cậy cho chính lớp của nó. Chúng ta sẽ tìm hiểu kỹ
hơn OpenVPN ở đây.
ƯU ĐIỂM CỦA OPENVPN
Hỗ trợ VPN lớp 2 và lớp 3 : Vì vậy, các đường hầm Open VPN trên lớp 2 cũng có
thể chuyển khung Ethernet, các gói dữ liệu IPX, và Windows Network Browsing
packets (NETBIOS), tất cả đều là những vấn đề gặp phải trong hầu hết các giải
pháp VPN khác.
Bảo vệ người làm việc bên ngoài bằng bức tường lửa nội bộ.
Các kết nối OpenVPN có thể đi qua được hầu hết mọi tường lửa và proxy : Khi
truy cập các trang web HTTPS, thì đường hầm OpenVPN làm việc. Việc thiết lập
đường hầm OpenVPN bị cấm là rất hiếm. OpenVPN có hỗ trợ ủy quyền đầy đủ
bao gồm xác thực.
Hỗ trợ UDP và TCP: OpenVPN có thể được cấu hình để chạy dịch vụ TCP hoặc
UDP trên Server hoặc Client. Là một máy Server, OpenVPN chỉ đơn giản là chờ
đợi cho đến khi một Client yêu cầu một kết nối, kết nối này được thiệt lập theo
cấu hình của Client.
Chỉ cần một cổng trong tường lửa được mở là cho phép nhiều kết nối vào: Kể từ
phần mềm OpenVPN 2.0, máy chủ đặc biệt này cho phép nhiều kết nối vào trên
cùng một cổng TCP hoặc UDP, đồng thời vẫn sử dụng các cấu hình khác nhau cho
mỗi một kết nối.
Không có vấn đề gì với NAT: Cả máy chủ và máy khách OpenVPN có thể nằm
trong cùng một mạng và sử dụng các địa chỉ IP riêng . Mỗi tường lửa có thể được
dùng để gửi lưu lượng tới điểm cuối đường hầm.
Giao diện ảo chấp nhận các quy tắc về tường lửa: Tất cả các qui tắc, các cơ chế
chuyển tiếp, và NAT có thể dùng chung đường hầm OpenVPN. Nhưng giao thức
IP cũng có thể , bạn có thể tạo đường hầm VPN khác như IPsec bên trong đường
hầm OpenVPN .
Độ linh hoạt cao với khả năng mở rộng kịch bản: OpenVPN cung cấp nhiều điểm
trong quá trình thiết lập kết nối để bắt đầu các kịch bản riêng. Những kịch bản có
thể được sử dụng cho một loạt các mục đích từ xác thực chuyển đổi dự phòng và
nhiều hơn nữa.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 24
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Hỗ trợ khả năng hoạt động cao, trong suốt cho IP động: Hai đầu đường hầm có thể
sử dụng IP động và ít bị thay đổi. Nếu bị đổi IP, các phiên làm việc của Windows
Terminal Server và Secure Shell (SSH) có thể chỉ bị ngưng trong vài giây và sẽ
tiếp tục hoạt động bình thường.
Cài đặt đơn giản trên bất kỳ hệ thống nào: Đơn giản hơn nhiều so với IPsec.
Thiết kế kiểu Mô-đun.
Hỗ trợ cho điện thoại di động và nhúng: Ngày càng có nhiều thiết bị di động được
hỗ trợ.
LỊCH SỬ PHÁT TRIỂN CỦA OPENVPN
Năm 2003, James Yonan đã kể lại trong thời gian ông ta đi du lịch ở Central Asia trước
ngày 11/09/2001 và có việc phải kết nối với văn phòng qua nhà cung cấp dịch vụ Internet
của châu Á hoặc Nga. Ông nhận thấy thực tế rằng những kết nối này đi qua những nước
không đảm bảo được sự an toàn.Theo những nghiên cứu của James Yonan thì có hai mục
tiêu chính của một hệ thống VPN đó là an toàn và tính khả dụng. Không có một giải pháp
nào vào thời điểm đó có thể đáp ứng được cả hai mục tiêu đó. Ipsec có thể chấp nhận
được về mặt an toàn, nhưng hệ thống xử lý của nó khó thiết lập, và cấu trúc phức tạp của
nó làm nó dễ bị tổn thương bởi các cuộc tấn công. Bởi vậy Jame Yonan đã tiếp cận giải
pháp dùng thiết bị card mạng ảo TUN/TAP có trong nhân hệ điều hành Linux.
Việc chọn thiết bị TUN/TAP cho mô hình nối mạng ngay lập tức đưa ra được tính linh
hoạt mà các giải pháp VPN khác lúc đó không thể có được. Trong khi các giải pháp VPN
nền tảng SSL/TLS khác cần một bộ trình duyệt (browser) để thiết lập kết nối, thì
OpenVPN chuẩn bị gần như những thiết bị mạng thật trên gần như tất cả các hoạt động
mạng. Rồi Yonan chọn tên OpenVPN với sự tôn trọng dành cho những thư viện và những
chương trình của dự án OpenSSl, và muốn đưa ra thông điệp: Đây là mã nguồn mở và
phần mềm miễn phí.OpenVPN sử dụng thiết bị Tun/Tap (hầu như có sẵn trên các bản
Linux) và openssl để xác nhận (authenticate), mã hóa (khi gởi) và giải mã (khi nhận)
đường truyền giữa hai bên thành chung một network.
CÁC PHIÊN BẢN CỦA OPENVPN
OpenVPN phiên bản 1
OpenVPN xuất hiện trong giải pháp VPN vào ngày 13/5/2001. Ấn bản đầu tiên này chỉ
có thể tạo đường hầm cho các gói IP qua giao thức UDP và chỉ mã hóa bằng mật mã
Blowfish (thuật toán mã hóa đối xứng) và các chữ ký SHA HMAC. Phiên bản này được
đánh số 0.90. Bảng sau đây giới thiệu tổng quát về các những lần xuất bản của OpenVPN
phiên bản 1:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 25
Tìm hiểu và cấu hình OpenVPN
Ngày-tháng-năm
Phiên
bản
13-5-2001
0.90
26-12-2001
23-3-2002
28-3-2002
9-4-2002
22-4-2002
22-5-2002
12-6-2002
10-7-2002
23-10-2002
7-5-2003
15-5-2003
15-7-2003
4-8-2003
GVHD: Phan Mai Linh
Những đặc tính / thay đổi quan trọng
Phiên bản đầu tiên , chỉ có vài chức năng như Ip chạy
trên dịch vụ UDP, và chỉ có 1 cơ chế mã hoá.
0.91
Nhiều cơ chế mã hoá đã được thêm
TLS dựa vào việc xác thực và trao đổi khoá đã được
1.0
thêm vào.
Chức năng sửa lỗi và cải tiến , đặc biệt đối với hệ thống
1.0.2
RPM như Redhat.
Hỗ trợ mở rộng đói với TLS/SSL
Thêm vào phân luồng dữ liệu
1.1.0
Cổng OpenBSD đầu tiên
Mở rộng việc bảo vệ giúp cho OpenVPN bảo mật hơn
Cải tiến tư liệu sâu hơn.
1.1.1
Các lựa chọn cấu hình tự động cho một mạng OpenVPN.
Hỗ trợ thêm tập tin cấu hình
SSl/TLS là quá trình nền tảng , các khoá cũng dài hơn
Các cổng khác nhau được bổ sung/ cải thiện (Solaris,
1.2.0
OpenBSD, Mac OSX, X64 )
Trang web được cải tiến , bao gồm “sách hướng dẫn”
Có thể cài đặt không cần tự động
Cung cấp các tập tin RPM nhị phân dùng để lắp đặt hệ
thống nền Redhat
Cải tiến chiều sâu về xử lý tìn hiệu và quản lý phím khi
khởi động
1.2.1
Hỗ trợ các thay đổi năng động trong các gói đến (như IP
động )
Thêm hỗ trợ cho nhận dạng sau khi cài OpenVPN có thể
chạy như người dùng thông thường.
1.3.0
Phiên bản sửa đổi có nhiều tính năng. Hoạt động với
1.3.1
OpenSSL 0.9.7 Beta 2.
Cổng NetBSD được bổ sung
Hỗ trợ cho việc tạo inetd/xinetd dưới Linux
1.3.2
Giấy chứng nhận SSL/TLS đơn giản đã được bổ sung
(rsa)
IPv6 trên TUN đã được thêm vào
Cải thiện an ninh
1.4.0
Sữa lỗi , cải tiến và bổ sung
1.4.1
Cải thiện , hỗ trợ cho Kernel 2.4
1.4.2
Cổng Windows đầu tiên xuất hiện
1.4.3
Phiên bản sửa lỗi (bugfix)
Bảng 3-1 : Các lần xuất bản của phiên bản 1
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 26
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
OpenVPN phiên bản 2
Song song với việc cải tiến và triển khai phiên bản 1, việc thử nghiệm đối với phiên bản 2
được tiến hành vào tháng 11/2003. Vào tháng 2/2004, phiên bản 2.0-test3 hướng đến mục
tiêu là một máy chủ OpenVPN có nhiều máy khách. Máy chủ có nhiều máy khách này là
một trong những đặc tính nổi bật nhất của OpenVPN hiện nay, vài máy khách có thể liên
kết với máy chủ VPN trên cùng mộtcổng. Vào 22/2/2004, hai nhánh phát triển là 1.6beta7 và 2.0-test3 được kết hợp lại và phát triển sâu thêm để tạo ra phiên bản 2
Qua 29 bản thử nghiệm, 20 bản beta, và 20 bản “ứng cử viên” thì đến 17 tháng 7 năm
2005 thì OpenVPN phiên bản 2.0 chính thức được phát hành. Danh sách sau đây là danh
sách tổng quan ngắn gọn của những đặc tính được thêm vào ở OpenVPN phiên bản 2:
Hỗ trợ multi-client: OpenVPN đưa ra một chế độ kết nối đặc biệt, ở đó những đã
được xác thực bằng TLS sẽ được cung cấp dữ liệu về IP và hoạt động mạng kiểu
DHCP. Với cách này, một số đường hầm ( tối đa là 128) có thể liên lạc qua cùng
một cổng TCP hoặc UDP.
Tùy chọn Push/pull: Việc cài đặt mạng của clients có thể được điều khiển bởi
sever. Sau khi hoàn thành cài đặt mạng của một đường hầm, sever có thể cho phép
client ( cả Windows và Linux) sử dụng những sự cài đặt mạng khác nhau ngay lập
tức.
Bổ sung một Management interface- giao diện quản lý (Telnet).
Phần mềm và driver trên Window được phát triển rộng rãi
OpenVPN phiên bản 2.1
Vào giữa năm 2005, các nhà phát triển OpenVPN tiếp tục cho ra phiên bản mới là 2.1.
Bên cạnh phiên bản này, một phiên bản thương mại 3.0 cũng đang được phát triển. Đầu
tháng 10/2008 bản quyền OpenVPN được chuyển cho công ty OpenVPN Technologies,
Inc; một công ty do James Jonan sáng lập. Công ty này là phát triển một số sản phẩm dựa
trên OpenVPN cho các thiết lập kinh doanh. Cả hai phiên bản với sự hỗ trợ thương mại
và thiết bị phần cứng, dịch vụ và hỗ trợ, và một giao diện quản lý dựa trên web sẽ có sẵn.
Từ năm 2008, thiết kế lại trang web của OpenVPN đã phản ánh một cách tiếp cận chuyên
nghiệp đối với khách hàng là doanh nghiệp.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 27
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
So sánh các giao thức VPN PPTP và L2TP và OpenVPN
PPTP
Hỗ trợ các thiết bị: máy
tính để bàn, các thiết bị
Khả năng
tương thích di động và máy tính
bảng.
Windows
Mac OS X
Hỗ trợ hệ Linux
iOS
thống
Android
DD-WR
Mã hóa
Bảo mật
Tính
định
ổn
L2TP/IPsec
Hỗ trợ các thiết bị: máy
tính để bàn, các thiết bị
di động và máy tính
bảng.
Windows
Mac OS X
Linux
iOS
Android
128-bit
256-bit
Mã hóa cơ bản
Sử dụng mã hóa cao
cấp. Kiểm tra tính toàn
vẹn dữ liệu, đóng gói
dữ liệu hai lần.
Rất ổn định
Ổn định khi sử dụng
NAT
OpenVPN
Hỗ trợ cho máy tính
để bàn.
Windows
Mac OS X
Linux
160-bit
256-bit
Sử dụng mã hóa cao
cấp. Có đường hầm
truyền dử liệu riêng.
Chứng thực ở hai
đầu đường hầm
Rất ổn định
Đáng tin cậy
Dễ dàng để thiết lập,
Yêu cầu cấu hình
được xây dựng trong hầu
tùy chỉnh
hết các hệ điều hành
Dễ dàng cài đặt với
các phần mềm
Tốc độ
Nhanh chóng
(bởi vì mã hóa thấp)
Phụ thuộc vào tốc độ
xử lý của CPU
Hiệu
suất
cao.
Nhanh, ngay cả trên
những khoảng cách
xa và kết nối độ trễ
cao.
Port
Tùy chọn hạn chế Port
Có nhiều tùy chọn
hạn chế port hơn PPTP
Hoạt động trên port
bất kỳ
Kết Luận
Một sự lựa chọn tốt nếu
OpenVPN là không có
sẵn trên thiết bị và dễ
dàng sử dụng và tốc độ
cao, nhưng bảo mật thấp.
An toàn hơn so với
PPTP, nhưng tốc độ
không nhanh bằng và
đòi hỏi cấu hình thêm.
tiên hơn sử dụng dễ
dàng và tốc độ.
Sự lựa chọn tốt nhất
trên máy tính để bàn
như: Windows,
Mac OS X và Linux.
Tốc độ cao, an toàn
và đáng tin cậy.
Thiết lập
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 28
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Chương 4: Hướng dẫn OpenVPN Client to Site trên Ubuntu
Mô tả:
User (VPN Client) từ bên ngoài hệ thống thực hiện quay VPN đến Server OpenVPN theo
cơ chế chứng thực Certificate dùng Key + Password bảo vệ Key (khác với Password của
Key).
Quá trình kết nối VPN thành công:
- Một đường hầm (Tunnel ảo) có Subnet 10.8.0.0/24 được tạo ra, VPN Client sẽ kết nối
đến hệ thống mạng công ty theo đường hầm này. (đường hầm có bảo mật)
- VPN Client sẽ được Server cấp phát một địa chỉ IP tĩnh thuộc subnet 10.8.0.0/24 để có
thể giao tiếp với các Local Computer bên trong hệ thống
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 29
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Bước 0: Chuẩn bị
Thiết lập, đặt IP theo mô hình:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 30
Tìm hiểu và cấu hình OpenVPN
SVTT: Kiều Đình Luân – Trần Quốc Vinh
GVHD: Phan Mai Linh
Trang 31
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Đảm bảo: Local Computer kết nối được với OpenVPN Server
VPN Client kết nối của OpenVPN Server (để quay VPN)
Softs: OpenVPN GUI: cài đặt trên VPN Client dùng để quay VPN đến Server
Gói lzo: cài đặt trên Server dùng để nén dữ liệu trên đường truyền
Gói openvpn: cài đặt trên Server làm OpenVPN Server.
Các softs này có thể download trên trang chủ hoặc mình đã để sẵn ở đây
http://www.mediafire.com/?ir9fdp8nybzcy8n
Bước 1: Cài đặt VPN Server
- Copy các gói cài đặt lzo-1.08, openvpn-2.0.9 vào thư mục cá nhân của root (/root)
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 32
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
- cd /root
- Giải nén và cài lzo-1.08
tar –xvzf lzo-1.08.tar.gz
cd lzo-1.08
./configure (kiểm tra các thư viện đã đủ chưa)
make (thực hiện biên dịch)
make install (thực hiện cài đặt)
- Giải nén và cài đặt openvpn :
cd ..
tar -xzvf openvpn-2.0.9.tar.gz
cd openvpn-2.0.9
./configure
make
make install apt-get update
Hoặc có thể cài khi có kết nối internet:
apt-get update
apt-get install openvpn
- Tạo thư mục /etc/openvpn:
mkdir /etc/openvpn
Bước 2: Tạo CA Certificate Server và Key
- Copy thư mục easy-rsa từ thư mục giải nén vào /etc/openvpn
cp -r /root/openvpn-2.0.9/easy-rsa/ /etc/openvpn/
hoặc
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 33
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
- Tạo CA Certifiacte Server:
cd /etc/openvpn/easy-rsa/2.0/
mv * ../ (move toàn bộ file trong thư mục 2.0/ ra thư mục easy-rsa/)
cd .. (chuyển đến thư mục easy-rsa/)
mkdir keys (tạo thư mục /etc/openvpn/easy-rsa/keys để chứa keys, certificate)
vi vars (sửa các thông số mặc định hoặc có thể bỏ qua bước này, dùng thông số mặc định)
- Cấu hình CA:
source vars dùng khởi tạo các biến môi trường đã thiết lập ở bước trên
Khi chạy lệnh này, yêu cầu hệ thống là không có file nào trong thư mục keys cả, sẽ hiện
ra dòng thông báo chạy lệnh ./clean-all để xóa trống thư mục /etc/openvpn/easy-rsa/keys
nếu có.
./clean-all
- Tạo CA server: Tạo private key lưu trong file 'ca.key' cho CA
./build-ca nhập các thông số vào, lưu ý: phần common name là xác định duy nhất do đó
cần nhớ phần này.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 34
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
ls thư mục keys sẽ thấy có các file được tạo ra
Các key này đều được mã hóa, có thể cat ra xem có gì trong đó.
- Tạo certificate và private key cho server (xin CA cho server)
Ở bước trên chúng ta đã tạo CA Server tương tự như server của các tổ chức bán
Certificate (Verizon,…), trong bước này ta sẽ tạo Private Key cho các server có nhu cầu
sử dụng việc chứng thực bằng Certificate (các ngân hàng, ..) ở đây server chúng ta là
OpenVPN.
./build-key-server openvpnserver
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 35
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
ls keys/ ra xem có thêm vài file được tạo ra.
- Tạo Diffie Hellman ( DH ): băm keys
./build-dh
Quá trình băm keys có thể diễn ra nhanh hay chậm.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 36
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
- Tạo Client Certificate và Private key cho Client (để thực hiện chứng thực 2 chiều). Ở
đây mình tạo 2 keys cho 2 user kieudinhluan và tranquocvinh
./build-key kieudinhluan (common name: kieudinhluan)
Tương tự tạo thêm cho tranquocvinh
./build-key tranquocvinh (common: tranquocvinh)
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 37
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Xong bước này là chúng ta đã hoàn thành việc tạo các Certificate và Keys cần thiết cho
việc chứng thực
ls keys/ ra xem kết quả ở bước này
Chúng ta có khá nhiều file trong thư mục keys/ này, các keys này sẽ được phân bố đến
server, clients hợp lý theo như bảng bên dưới:
Bước 3: Cấu hình chức năng Forwarding (dùng để thực hiện Lan Routing)
vi /etc/sysctl.conf
7: net.ipv4.ip_forward = 1
sysctl –p (để cho các thông số có hiệu lực)
echo 1 > /proc/sys/net/ipv4/ip_forward
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 38
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Bước 4: Cấu hình VPN Server
- Copy file cấu hình server.conf mẫu từ source cài đặt vào /etc/openvpn/
cp /root/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/
- Chỉnh sửa file cấu hình:
cd /etc/openvpn/
vi server.conf
25: local 192.168.1.200 (chọn card mạng user quay VPN đến, có thể không cần tùy chọn
này)
32: port 1723 (default là 1194, thường port này bị firewall block nên đặt 1723 cho giống
port VPN Server của Windows Server)
36: proto udp (protocol udp)
53: dev tun (dùng tunnel, nếu dùng theo bridge chọn dev tap0 và những config khác sẽ
khác với tunnel)
78: ca /etc/openvpn/easy-rsa/keys/ca.crt (khai báo đuờng dẫn cho file ca.crt)
79: cert /etc/openvpn/easy-rsa/keys/openvpnserver.crt
80: key /etc/openvpn/easy-rsa/keys/openvpnserver.key
87: dh /etc/openvpn/easy-rsa/keys/dh1024.pem
96: server 10.8.0.0 255.255.255.0 (khai báo dãy IP cần cấp cho VPN Client, mặc định
VPN Server sẽ lấy IP đầu tiên – 10.8.0.1)
103: ;ifconfig-pool-persist ipp.txt (dùng để cho VPN Client lấy lại IP trước đó nếu bị đứt
kết nối với VPN server, do chúng ta dùng IP tĩnh nên không sử dụng thông số này)
124: push “route 172.16.0.0 255.255.255.0” (lệnh này sẽ đẩy route mạng 172.16.0.0 đến
Client, hay còn gọi là Lan Routing trong Windows Server, giúp cho VPN Client thấy
được mạng bên trong của công ty)
125: ;push “route 192.168.1.200 255.255.255.0” do bài Lab của chúng ta VPN Client đã
connect đến được network 192.168.1.0 nên không cần add route dòng này (nếu có sẽ
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 39
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
không chạy được, chỉ cần add route các lớp mạng bên trong công ty mà Client bên ngoài
không connect được)
138: client-config-dir ccd (dùng để khai báo cấp IP tĩnh cho VPN Client)
196: client-to-client (cho phép các VPN client nhìn thấy nhau, mặc định client chỉ thấy
server)
Ngoài ra còn có những thông số khác không dùng đến như:
181 ;push “redirect-gateway” (mọi traffic của VPN Client – http, dns, ftp, … đều thông
qua đuờng Tunnel. Khác với lệnh push route, chỉ những traffic đi vào mạng nội bộ mới
thông qua Tunnel, khi dùng lệnh này yêu cầu bên trong mạng nội bộ cần có NAT Server,
DNS Server)
187, 188: push “dhcp-option DNS (WINS) 10.8.0.1” đẩy DNS or WINS config vào
VPN Client
Mọi người cứ nghĩ lệnh push sẽ áp config từ server đến VPN Client. Khi quay VPN
thành công, Client sẽ được VPN Server add những thông số config này.
- Cấu hình file IP tĩnh tương ứng với từng User:
Sau khi đã cấu hình server, tiếp đó ta sẽ cấu hình các file đặt trong thư mục cdd/ tương
ứng với từng User VPN.
+ Tạo thư mục ccd (/etc/openvpn/ccd)
mkdir /etc/openvpn/ccd
+ Tạo profile cho user kieudinhluan
vi /etc/openvpn/ccd/kieudinhluan
theo file cấu hình trên user kieudinhluan sẽ nhận IP là 10.8.0.2
Cặp IP khai báo trong lệnh trên phải thuộc bảng bên dưới, ứng với mỗi user sẽ có 1 cặp ip
tương ứng.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 40
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Còn lý do thuộc bảng trên, các bạn tham khảo ở đây:
http://openvpn.net/index.php/open-so...to.html#policy
(http://openvpn.net/index.php/open-source/documentation/howto.html#policy)
+ Tạo profile cho user tranquocvinh
vi /etc/openvpn/ccd/tranquocvinh
theo file cấu hình trên user tranquocvinh sẽ nhận IP là 10.8.0.6
Các bạn có thể thấy hạn chế của việc đặt IP theo bảng trên là ở Subnet 10.8.0.0/24 ta chỉ
có thể config IP tĩnh cho 64 user (tương ứng với 64 cặp IP ở trên). Nếu trong công ty có
nhiều hơn 64 user sử dụng VPN , chúng ta sẽ tạo thêm 1 subnet nữa, chẳng hạn 10.9.0.0
và add route thêm mạng này vào file server.conf ở trên.
Bước 5: Start VPN Server và tiến hành quay VPN, test với các user kieudinhluan,
tranquocvinh.
- Start OpenVPN Server
cd /etc/openvpn
openvpn server.conf
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 41
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
- Cài đặt, config OpenVPN GUI cho Client
+ Chạy file openvpn-2.0.9-gui-1.0.3-install.exe, cài đặt mặc định.
+ Chép các file key, certificate cần thiết ca.crt, kieudinhluan.crt, kieudinhluan.key vào
đường dẫn C:\Program Files\OpenVPN\config
+ Copy file client.ovpn từ đường dẫn C:\Program Files\OpenVPN\sample-config vào
C:\Program Files\OpenVPN\config
+ Edit file client.ovpn:
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 42
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
client
dev tun (tunnel)
proto udp (upd protocol)
remote 192.168.1.200 1723 (khai báo IP:Port server OpenVPN)
nobind
persist-key
persist-tun
ca ca.crt (khai báo CA server)
cert kieudinhluan.crt (certificate user kieudinhluan)
key kieudinhluan.key (private key kieudinhluan)
comp-lzo
verb 3
- Quay VPN
Right Click vào biểu tượng Card mạng mới sau khi cài OpenVPN GUI, chọn Connects
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 43
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
Các bạn có thể thấy đã quay VPN thành công, nhận IP 10.8.0.2, các route cần thiết cũng
được add vào.
- Set password bảo vệ Key:
Right click vào Icon OpenVPN Chọn Change Password
Sau này khi quay VPN, hệ thống sẽ yêu cầu thêm
password này nữa.
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 44
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
- Test:
+ Kiểm tra kết nối với mạng bên trong bằng lệnh ping.
+ Quay VPN với user tranquocvinh
Làm các bước tương tự như user tranquocvinh
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 45
Tìm hiểu và cấu hình OpenVPN
GVHD: Phan Mai Linh
TÀI LIỆU THAM KHẢO
Tiếng Anh:
1. Cisco - The Complete Cisco VPN Configuration Guide(2005)
2. OpenVPN 2 CookBook
3. Charlie Hosner OpenVPN and the SSLVPN revolution
4. Building and Integrating Virtual Private Networks
5. Website http:\\Quantrimang.com
6. Website http:\\ windowsecurity.com
7. Website http:\\ openvpn.net
SVTT: Kiều Đình Luân – Trần Quốc Vinh
Trang 46
- Xem thêm -