Change background image
LOVE quotion

Bắt đầu từ 4.53' thứ Hai ngày 17/10/2011


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

DuyHung
DuyHung Xuất sắc

Cấp bậc: Xuất sắc

Giới tính : Nam

Bài viết : 1246

Danh vọng : 2256

Uy tín : 32

CHƯƠNG 1:TỔNG QUAN

Nhu cầu ngày càng tăng về việc truyền tải dữ liệu an toàn trong các tổ chức dẫn đến sự bùng nổ thị trường các giải pháp mạng riêng ảo VPN (Virtual Private Network). Thêm vào đó, khuynh hướng phi tập trung các phương tiện sản xuất và sự phát triển lực lượng lao động di động cũng làm gia tăng sự cần thiết cho việc truy cập tài nguyên thông tin của doanh nghiệp.
Bên cạnh một số giải pháp truy cập từ xa đã được triển khai như: Thuê bao riêng, quay số (dial-up), internet, … OpenVPN được xem như là một giải pháp truy cập từ xa có nhiều ưu điểm hơn so với các giải pháp trước đây.
1.1. CÁC GIẢI PHÁP VPN THÔNG DỤNG
1.1.1. IPSec VPN
IPSec là một giao thức mạng chuyên về bảo mật, hoạt động ở lớp mạng. IPSec có thể được áp dụng trong mạng cục bộ (LAN) và mạng diện rộng (Internet). Trong mạng diện rộng, IPSec thường được kết hợp với VPN để tạo ra đường hầm truyền tải dữ liệu an toàn và bảo mật giữa hai thực thể truyền thông. Dữ liệu trên đường truyền được mã hóa tin cậy. 
Việc thiết lập một đường hầm IPSec (IPsec tunnel) giữa hai thực thể, trước tiên, phải thỏa thuận về chính sách an ninh (security policy), giải thuật mã hóa (encryption algorithm), kiểu xác thực (authentication method) sẽ được dùng để tạo kênh. Trong IPSec tất cả các nghi thức lớp trên lớp mạng (từ lớp 4) như TCP, UDP, SNMP, HTTP, POP, SMTP,…đều được mã hóa một khi kênh IPSec được thiết lập. Client và server đều phải cấu hình IPSec thích hợp. Do đó, việc cấu hình IPSec khá phức tạp, đòi hỏi phải có người có kiến thức chuyên sâu đảm nhiệm. 
IPSec VPN thích hợp cho các kết nối liên tục với người dùng cố định. 

Triển khai OpenVPN Be5c6f17731dc3d9be0e0492f2a8f80d_52052930.image005
Hình 1.1 : Giải pháp IPSec VPN

1.1.2. SSL VPN
SSL VPN là một giải pháp VPN mới và phát triển nhanh chóng dựa trên giao thức SSL. SSL VPN tạo kết nối giữa người dùng từ xa và tài nguyên mạng công ty thông qua giao thức HTTPS ở lớp ứng dụng thay vì tạo “đường hầm” ở lớp mạng như giải pháp IPSec.
SSL VPN tạo ra một kênh truyền thông an toàn giữa người dùng ở xa với máy chủ trong mạng. Người dùng ở xa chỉ cần sử dụng một trình duyệt web để tạo kết nối vào máy chủ trong mạng, người quản trị không cần phải cài đặt phần mềm và cấu hình bảo mật cho các máy client như đối với IPSec. 
SSL VPN thích hợp cho các kết nối không thường xuyên với người dùng lưu động.
Triển khai OpenVPN E107245fdad602ff12d58168eb72d9db_52052931.image006
Hình 1.2: Giải pháp SSL VPN
1.1.3. OpenVPN
OpenVPN là một phần mềm mạng riêng ảo mã nguồn mở dành cho việc tạo các đường ống (tunnel) điểm-điểm được mã hóa giữa các máy tính. Phần mềm này do James Yonan viết và được phổ biến dưới giấy phép GNU GPL. 
OpenVPN cho phép các máy tính ngang hàng xác thực lẫn nhau bằng một khóa bí mật được chia sẻ từ trước, chứng chỉ khóa công khai (public key certificate), hoặc tên người dùng/mật khẩu. Phần mềm này được cung cấp kèm theo các hệ điều hành Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X, và Windows 2000/2003/XP, Windows 7 và Windows 2008. Nó có nhiều tính năng bảo mật và kiểm soát. Nó không phải một mạng riêng ảo web, và không tương thích với IPsec hay các gói VPN khác. Toàn bộ phần mềm gồm có một file nhị phân cho cả các kết nối client và server và một hoặc nhiều file khóa tùy theo phương thức xác thực được sử dụng. 
Tuy nhiên, OpenVPN hiện vẫn chưa được áp dụng rộng rãi trong thực tế. Chưa có những công trình nghiên cứu chuyên sâu và hoàn chỉnh về lĩnh vực này. Đa số việc nghiên cứu và áp dụng OpenVPN chỉ được triển khai trên các hệ thống riêng lẻ, đặc thù cho từng cơ quan hay cá nhân. 
Bên cạnh đó, OpenVPN còn thiếu sự hỗ trợ của phần cứng và không tương thích với các giải pháp VPN đã có từ trước.
      
DuyHung
DuyHung Xuất sắc

Cấp bậc: Xuất sắc

Giới tính : Nam

Bài viết : 1246

Danh vọng : 2256

Uy tín : 32

CHƯƠNG 2: TÌM HIỂU VỀ VPN

Trong thời đại ngày nay, Internet đã phát triển mạnh về mặt mô hình cho đến công nghệ, đáp ứng các nhu cầu của người sử dụng. Internet đã được thiết kế để kết nối nhiều mạng khác nhau và cho phép thông tin chuyển đến người sử dụng một cách tự do và nhanh chóng mà không xem xét đến máy và mạng mà người sử dụng đó đang dùng. Để làm được điều này người ta sử dụng một máy tính đặc biệt gọi là router để kết nối các LAN và WAN với nhau. Các máy tính kết nối vào Internet thông qua nhà cung cấp dịch vụ (ISP-Internet Service Provider), cần một giao thức chung là TCP/IP. Điều mà kỹ thuật còn tiếp tục phải giải quyết là năng lực truyền thông của các mạng viễn thông công cộng. 
Với Internet, những dịch vụ như giáo dục từ xa, mua hàng trực tuyến, tư vấn y tế….. đã trở thành hiện thực.Tuy nhiên, do Internet 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 rất khó khăn trong 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ụ. Từ đó người ta đã đưa ra một mô hình mạng mới nhằm thoả mãn những yêu cầu trên mà vẫn có thể tận dụng lại những cơ sở hạ tầng hiện có của Internet, đó chính là mô hình mạng riêng ảo (Virtual Private Network - VPN). 
Với VPN, người ta không phải đầu tư thêm nhiều về cơ sở hạ tầng mà các tính năng như bảo mật, độ tin cậy vẫn đảm bảo, đồng thời có thể quản lý riêng được sự hoạt động của mạng này. VPN cho phép người sử dụng làm việc tại nhà, trên đường đi hay các văn phòng chi nhánh có thể kết nối an toàn đến máy chủ của tổ chức mình bằng cơ sở hạ tầng được cung cấp bởi mạng công cộng.Nó có thể đảm bảo an toàn thông tin giữa các đại lý, người cung cấp, và các đối tác kinh doanh với nhau trong môi trường truyền thông rộng lớn. 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à chúng có thể dùng mạng công cộng như Internet mà đảm bảo tính riêng tư và tiết kiệm hơn nhiều
2. 
2.1. KHÁI NIỆM VPN
VPN được hiểu đơn giản như là sự mở rộng của một mạng riêng (private network) thông qua các mạng công cộng. 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 bởi 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 cung cấp các cơ chế mã hóa dữ liệu trên đường truyền tạo ra một đường ống 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 ống VPN (VPN Tunnel)


Triển khai OpenVPN 013e0d50c47e3b3555019c88df4af116_52053363.image007
Hình 2.1: Mô hình VPN tiêu biểu
2.2. CÁC THÀNH PHẦN CẦN THIẾT ĐỂ TẠO KẾT NỐI VPN
User Authentication: cung cấp cơ chế chứng thực người dùng, chỉ cho phép người dùng hợp lệ kết nối và truy cập hệ thống VPN.
Address Management: cung cấp địa chỉ IP hợp lệ cho người dùng sau khi gia nhập hệ thống VPN để có thể truy cập tài nguyên trên mạng nội bộ
Data Encryption: cung cấp giải pháp mã hoá dữ liệu trong quá trình truyền nhằm bảo đảm tính riêng tư và toàn vẹn dữ liệu
Key Management: cung cấp giải pháp quản lý các khoá dùng cho quá trình mã hoá và giải mã dữ liệu


2.3. CÁC LOẠI VPN
Có hai loại phổ biến hiện nay đó là :
- Client-to-Site (còn gọi là Remote Access VPN)
- Site-to-Site
Triển khai OpenVPN 3f0f2ba3e4107f956ef507b389d906da_52053364.image008
Hình 2.2: Client –to- site và site-to-site VPN
2.3.1. Client to Side:
Hiện này, một số tổ chức hay công ty có số lượng nhân viên hoạt động ở những địa điểm khác nhau , những người thường xuyên di chuyển …có nhu cầu truy cập vào mạng riêng của tổ chức (công ty ) của mình ngày càng tăng. Nên hình thức này đang được quan tâm và phát triển mạnh.
Khi VPN được triển khai, các nhân viên chỉ việc kết nối internet thông qua các ISPs và sử dụng các phần mềm VPN máy khách để truy cập vào mạng riêng của công ty. Nhân viên lưu động có thể sử dụng phần mềm VPN cài đặt sẵn trên laptop, smartphone, pocket PC hay các thiết bị truyền thông khác để thiết lập các kết nối VPN vào hệ thống mạng nội bộ của công ty họ để lấy và trao đổi thông tin thông qua môi trường internet. Các truy cập loại này đảm bảo các kết nối được bảo mật và mã hóa.
Loại kết nối này dựa trên kiến trúc Client/Server và nó hoạt động như sau:
(1). VPN client muốn truy cập vào mạng của cơ quan trước hết phải kết nối vào internet 
(2). VPN client khởi tạo một kết nối VPN đến VPN server của cơ quan. Kết nối này được tạo ra nhờ một phần mềm VPN đã được cài đặt trên máy client.
(3). VPN server sẽ kiểm tra và xác nhận kết nối. Nếu hợp lệ, kết nối sẽ được thiết lập.
(4). Một khi kết nối đã được thiết lập, VPN client có thể truyền thông với hệ thống mạng nội bộ của cơ quan thông qua môi trường internet như là một host nội bộ


2.3.2. Site to Site
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
- Intranet VPN : Áp dụng trong trường hợp công ty có một hoăc vài địa điểm từ xa ,mỗi địa điểm đều có mạng cục bộ LAN .Khi đó, họ có thể tạo ra một VPN intranet (VPN nội bộ) thông qua môi trường internet để nối mạng cục bộ vào một mạng riêng duy nhât .
- Extranet VPN : 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 để chia sẻ tài nguyên.

2.4. CÁC GIAO THỨC DÙNG CHO VPN
2.4.1. Một chuẩn được khuyến nghị dùng cho đường hầm
General Routing Encapsulation(GRE ): cung cấp một chuẩn cho đường hầm và nó trở thành cơ sở cho các giao thức khác. Khái niệm của GRE là khá đơn giản.Một tiêu đề lớp 2 và lớp 3 được thêm vào các gói tin ban đầu, và tải của nó được đóng gói trong các gói tin mới. Nếu không được mã hóa,thì GRE không cung cấp an ninh. Những lợi thế của mô hình này là tính trong sang cho phép quản trị và bộ định tuyến để nhìn vào bên trong các gói tin và thông qua quyết định dựa trên loại tải trọng đã được gửi. Như vậy, các ứng dụng đặc biệt có thể nhận được đặc quyền bằng cách định hình luồng hoặc là các phương thức tương tự.
Do tính linh hoạt của nó, GRE cũng có thể được sử dụng trong mạng IPv4 và IPv6, hoặc đường hầm Netware hoặc giao thức của Apple.
2.4.2. Các giao thức được thực hiện trên OSI lớp 2
· Point-to-Point Tunneling Protocol(PPTP):
PPTP (RFC2637) được phát triển với sự giúp đỡ của Microsoft, là một mở rộng của PPP. Đó là tích hợp trong tất cả các hệ điều hành mới của Microsoft. PPTP sử dụng GRE đóng gói và có thể đường hầmIP,IPX (Internetwork Packet Exchange), và các giao thức khác trên Internet.Những hạn chế là cùng lúc chỉ có một đường hầm giữa các đối tác truyền thông.
· Layer 2 Forwarding (L2F):
L2F (RFC 2341) được phát triển gần như ở đồng thời các công ty khác, bao gồm Cisco,và cung cấp nhiều khả năng hơn so với PPTP, đặc biệt là liên quan đến đường hầm của mạng và đồng thời cùng 1 lúc có nhiều đường hầm.
· Layer 2 Tunneling Protocol (L2TP):
L2TP (RFC 2661) được sử dụng rộng rãi bởi Cisco và các nhà sản xuất khác. Sự thành công của nó dựa vào việc kết hợp những ưu điểm củaL2F và PPTP mà không bị hạn chế của chúng. Mặc dù nó không tự cung cấp riêng cơ chế bảo mật, nhưng nó có thể được kết hợp với công nghệ khác chẳng hạn như IPsec .


· Layer 2 Security Protocol (L2Sec):
L2sec (RFC 2716), được phát triển để cung cấp giải pháp cho các lỗ hổng bảo mật của IPsec. Mặc dù chi phí của nó là khá lớn, các cơ chế bảo mật được sử dụng an toàn, bởi vìchủ yếu SSL / TLS được sử dụng.

2.4.3. Các giao thức được thực hiện trên OSI lớp 3
· IPsec (Internet Protocol Security)
IP Security (IPSec) là một giao thức được chuẩn hoá bởi IETF từ năm 1998 nhằm mục đích nâng cấp các cơ chế mã hoá và xác thực thông tin cho chuỗi thông tin truyền đi trên mạng bằng giao thức IP. Hay nói cách khác, IPSec là sự tập hợp của các chuẩn mở được thiết lập để đảm bảo sự cẩn mật dữ liệu, đảm bảo tính toàn vẹn dữ liệu và chứng thực dữ liệu giữa các thiết bị mạng
IPSec được thiết kế như phần mở rộng của giao thức IP, được thực hiện thống nhất trong cả hai phiên bản IPv4 và IPv6. Đối với IPv4, việc áp dụng IPSec là một tuỳ chọn, nhưng đối với IPv6, giao thức bảo mật này được triển khai bắt buộc.
Có hai mode khi thực hiện IPsec đó là: Transport mode và tunnel mode.
Transport mode
Transport mode cung cấp cơ chế bảo vệ cho dữ liệu của các lớp cao hơn (TCP, UDP hoặc ICMP). Trong Transport mode, phần IPSec header được chèn vào giữa phần IP header và phần header của giao thức tầng trên, như hình mô tả bên dưới, AH và ESP sẽ được đặt sau IP header nguyên thủy. Vì vậy chỉ có tải (IP payload) là được mã hóa và IP header ban đầu là được giữ nguyên vẹn. Transport mode có thể được dùng khi cả hai host hỗ trợ IPSec. Chế độ transport này có thuận lợi là chỉ thêm vào vài bytes cho mỗi packets và nó cũng cho phép các thiết bị trên mạng thấy được địa chỉ đích cuối cùng của gói. Khả năng này cho phép các tác vụ xử lý đặc biệt trên các mạng trung gian dựa trên các thông tin trong IP header. Tuy nhiên các thông tin Layer 4 sẽ bị mã hóa, làm giới hạn khả năng kiểm tra của gói.

Triển khai OpenVPN 07695d92abbb918385aff714143d6129_52053366.image009
Hình 2.3: Gói dữ liệu với IPSec ở Transport mode
- Transport mode thiếu mất quá trình xử lý phần đầu, do đó nó nhanh hơn. Tuy nhiên, nó không hiệu quả trong trường hợp ESP có khả năng không xác nhận mà cũng không mã hóa phần đầu IP.
- Transport Mode thường dùng cho các kết nối từ đầu cuối đến đầu cuối, ví dụ từ trạm làm việc đến máy chủ hoặc giữa hai trạm làm việc với nhau
Tunnel mode
- Không giống Transport mode, Tunnel mode bảo vệ toàn bộ gói dữ liệu. Toàn bộ gói dữ liệu IP được đóng gói trong một gói dữ liệu IP khác và một IPSec header được chèn vào giữa phần đầu nguyên bản và phần đầu mới của IP.Toàn bộ gói IP ban đầu sẽ bị đóng gói bởi AH hoặc ESP và một IP header mới sẽ được bao bọc xung quanh gói dữ liệu. Toàn bộ các gói IP sẽ được mã hóa và trở thành dữ liệu mới của gói IP mới. Chế độ này cho phép những thiết bị mạng, chẳng hạn như router, hoạt động như một IPSec proxy thực hiện chức năng mã hóa thay cho host. Router nguồn sẽ mã hóa các packets và chuyển chúng dọc theo tunnel. Router đích sẽ giải mã gói IP ban đầu và chuyển nó về hệ thống cuối. Vì vậy header mới sẽ có địa chỉ nguồn chính là gateway.
- Với tunnel hoạt động giữa hai security gateway, địa chỉ nguồn và đích có thể được mã hóa. Tunnel mode được dùng khi một trong hai đầu của kết nối IPSec là security gateway và địa chỉ đích thật sự phía sau các gateway không có hỗ trợ IPSec

Triển khai OpenVPN A0b36516cadb09a7d5eada548a9af718_52053367.image010
Hình2.4: Gói dữ liệu với IPSec ở Tunnel mode
- Tunnel Mode thường được dùng trong các SA (Security Association -liên kết bảo mật) nối giữa hai gateway của hai mạng

2.4.4. Các giao thức được thực hiện trên OSI lớp 4
Có thể thiết lập các đường hầm VPN bằng cách sử dụng chỉ ở các lớp ứng dụng. Secure Sockets Layer (SSL) vàTransport Layer Security(TLS) các giải pháp theo phương pháp tiếp cận.:
Một nhân viên trường có thể truy cập vào một mạng SSL-VPN bằng cách sử dụng một trình duyệt kết nối đơn giản giữa khách hàng và máy chủ VPN trong doanh nghiệp. Điều này rất đơn giản ,chỉ cần đăng nhập vào một trang web bảo đảm HTTPS với một trình duyệt. Trong khi đó, có một số sản phẩm hứa hẹn có sẵn, chẳng hạn như SSL-Explorer http://3sp.com/showSslExplorer.do, và phần mềm như thế này có thể cung cấp sự linh hoạt tuyệt vời khi kết hợp bảo mật mạnh mẽ và thiết lập dễ dàng. Sử dụng kết nối an toàn trình duyệt cung cấp, người dùng có thể kết nối ổ đĩa mạng và các dịch vụ truy cập mạng từ xa.
Đảm bảo An ninh bằng cách mã hóa lưu lượng truy cập bằng cách sử dụng các cơ chế SSL / TLS, có được chứng minh là rất đáng tin cậy và vĩnh viễn được cải thiện và thử nghiệm.


2.5. BẢO MẬT TRONG VPN
VPN có trang bị một có tính năng bảo mật sau:
- Tường lửa (firewall): 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. Một số sản phẩm dùng cho VPN như router 1700 của Cisco có thể nâng cấp để gộp những tính năng của tường lửa bằng cách chạy hệ điều hành Internet Cisco IOS thích hợp. Tốt nhất là hãy cài tường lửa thật tốt trước khi thiết lập VPN.
- 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 những máy tính đó, để 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 khai. Mã riêng này chỉ có máy của bạn nhận biết, còn mã công khai 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 thông điệp, máy tính phải dùng mã chung được máy tính nguồn cung cấp, đồng thời cũng cần đến mã riêng của nó nữa. 
- Giao thức bảo mật: giao thức IPSec cung cấp những tính năng an toàn cao như các thuật toán mã hóa mạnh, quá trình thẩm định quyền đăng nhập toàn diện.
Ngoài ra ta còn có thể sử dụng máy chủ AAA. AAA là viết tắt của ba chữ Authentication (xác thực), Authorization (cấp quyền) và Accounting (tính cước). Các máy chủ 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
      
DuyHung
DuyHung Xuất sắc

Cấp bậc: Xuất sắc

Giới tính : Nam

Bài viết : 1246

Danh vọng : 2256

Uy tín : 32

CHƯƠNG 3 : GIAO THỨC BẢO MẬT SSL

Nhu cầu ngày càng tăng về việc truyền tải dữ liệu an toàn (data security) trong một tổ chức, công ty dẫn đến nhu cầu về các giải pháp mạng riêng ảo VPN (Virtual Private Network). Thêm vào đó, khuynh hướng làm việc qua mạng từ xa, phân tán của các doanh nghiệp công ty có nhiều chi nhánh và sự phát triển của lượng nhân viên di động cũng làm gia tăng nhu cầu cho việc truy cập tài nguyên thông tin của công ty.
SSL là giải pháp bảo mật mạng máy tính an toàn dữ liệu bổ sung sử dụng công nghệ VPN trên thị trường. Nó được thiết kế cho những giải pháp truy cập từ xa (client-to-site) và không cung cấp những kết nối site-to-site. SSL VPN cung cấp khả năng bảo mật để truy cập vào những ứng dụng dựa trên web. Sử dụng SSL VPN, người sử dụng không phải chạy bất kỳ phần mềm client đặc biệt nào trên những máy tính của họ . Sử dụng SSL VPN là sử dụng một cơ chế bảo mật mới, mạnh và mềm dẻo hơn so với khả năng bảo mật của IPSec, làm giảm đi sự phức tạp trong việc cấu hình bảo mật VPN.

3.1. CƠ CHẾ HOẠT ĐỘNG CỦA SSL
Điểm cơ bản của SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính bí mật, an toàn và chống giả mạo luồng thông tin qua Internet giữa hai ứng dụng bất kỳ, thí dụ như webserver và các trình duyệt khách (browsers), do đó được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet.
Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL được phổ biến công khai, trừ khoá chia xẻ tạm thời (session key) được sinh ra tại thời điểm trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính.
Giao thức SSL dựa trên hai nhóm con giao thức là giao thức “bắt tay” (handshake protocol) và giao thức truyền dữ liệu (record protocol):
- Giao thức bắt tay xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin hoặc dữ liệu.
- Giao thức truyền dữ liệu xác định khuôn dạng cho tiến hành mã hoá và truyền tin hai chiều giữa hai đối tượng đó.
Khi hai ứng dụng máy tính, thí dụ giữa một trình duyệt web và máy chủ web, làm việc với nhau, máy chủ và máy khách sẽ trao đổi “lời chào” (hellos) dưới dạng các thông điệp cho nhau với xuất phát đầu tiên chủ động từ máy chủ, đồng thời xác định các chuẩn về thuật toán mã hoá và nén số liệu có thể được áp dụng giữa hai ứng dụng.
Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên” (session ID, session key) duy nhất cho lần làm việc đó. Sau đó ứng dụng khách (trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng dụng chủ (web server).
Chứng thực điện tử thường được xác nhận rộng rãi bởi một cơ quan trung gian (là CA -Certificate Authority) như RSA Data Sercurity hay VeriSign Inc., một dạng tổ chức độc lập, trung lập và có uy tín. Các tổ chức này cung cấp dịch vụ “xác nhận” số nhận dạng của một công ty và phát hành chứng chỉ duy nhất cho công ty đó như là bằng chứng nhận dạng (identity) cho các giao dịch trên mạng, ở đây là các máy chủ webserver.

Sau khi kiểm tra chứng chỉ điện tử của máy chủ (sử dụng thuật toán mật mã công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin trong chứng chỉ điện tử để mã hoá thông điệp gửi lại máy chủ mà chỉ có máy chủ đó có thể giải mã.
Trên cơ sở đó, hai ứng dụng trao đổi khoá chính (master key) - khoá bí mật hay khoá đối xứng - để làm cơ sở cho việc mã hoá luồng thông tin/dữ liệu qua lại giữa hai ứng dụng chủ khách. Toàn bộ cấp độ bảo mật và an toàn của thông tin/dữ liệu phụ thuộc vào một số tham số:
- Số nhận dạng theo phiên làm việc ngẫu nhiên.
- Cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL.
- Độ dài của khoá chính (key length) sử dụng cho lược đồ mã hoá thông tin.
Giao thức SSL cung cấp sự bảo mật thông qua ba đặc tính cơ bản sau:
- Các bên giao tiếp (client và server) có thể xác thực lẫn nhau bằng cách sử dụng mật mã khóa công khai. 
- Lưu lượng dữ liệu được bảo vệ vì kết nối được mã hóa trong suốt sau khi thiết lập quan hệ ban đầu và sự thương lượng khóa session đã diễn ra. 
- Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ.

Để hiểu thêm về giao thức SSL, xem cấu trúc của nó: 
Triển khai OpenVPN 8264cda12655953599d2835c663d3267_52087305.image011
Hình 3.1: Cấu trúc SSL và mô hình SSL
Theo biểu đồ trên, SSL nằm trong tầng ứng dụng của giao thức TCP/IP. Do đặc điểm này, SSL có thể được dùng trong hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải chỉnh sửa nhân của hệ thống hoặc ngăn xếp TCP/IP. Điều này mang lại cho SSL sự cải tiến mạnh mẽ so với các giao thức khác như IPSec (IP Security Protocol). Vì giao thức này đòi hỏi nhân hệ điều hành phải hỗ trợ và chỉnh sửa ngăn xếp TCP/IP. SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như NAT (NetworkAddress Translation) mà không cần nguồn cung cấp

3.2. CÁC GIAO THỨC BẢO MẬT SSL
SSL là giao thức tầng (layered protocol), bao gồm 4 giao thức con sau:
· Giao thức truyền dữ liệu SSL
· Giao thức thay đổi thông số mã
· Giao thức cảnh báo
· Giao thức bắt tay

3.2.1. Giao thức truyền dữ liệu SSL( SSL record Protocol)
Giao thức truyền dữ liệu SSL cung câp 2 dịch vụ cơ bản cho kết nối SSL là dịch vụ bảo mật và dịch vụ toàn vẹn dự liệu.
Triển khai OpenVPN 0c1523512db729008178e14572bc919c_52087100.image012
Hình 3.2: Hoạt động của giao thức SSL record
Hình trên mô tả hoạt động động của giao thức SSL record. Theo đó , các thao tác mà SSL thực hiện trên dữ liệu bao gồm : phân đoạn dữ liệu ( fragmentation ), nén dữ liệu (compression ), xác thực dữ liệu (MAC), mã hoá , thềm các tiêu đề cần thiết và cuối cùng là gởi toàn bộ thông tin trên trong một segment TCP. Ở phía nhận , quá trình được thực hiện ngược lại .
Hai chức năng quan trọng nhất của SSL record là mã hoá và xác thực thông tin. Chức năng xác thực thông tn đước thức hiện thông qua các hà băm MD5 hoặc SHA_1 .Các thuật toán mã hoá có thể dùng trong SSL là :

Triển khai OpenVPN De029274d6fbd052591a217c5637f4f2_52087102.image013
Hình 3.3: Các thuật toán mã khối và mã dòng
3.2.2. Giao thức thay đổi thông số mã(Change Cipher Spec protocol)
Giao thức thay đổi thông số mã là giao thức đơn giản nhất trong cấu trúc SSL..Nó chỉ gồm một message duy nhất có kích thước 1 byte được gởi đi dùng giao thức SSL record. Chức năng của bản tin này là cập nhật thông số mã hóa cho cho kết nối hiện hành

3.2.3. Giao thức cảnh báo(Alert protocol)
Giao thức cảnh báo dùng để trao đổi các thông tin cảnh báo sự cố giữa hai đầu kết nối SSL.Mỗi message cảnh báo gồm 2 byte: byte đầu cho biết mức độ cảnh báo.
Có 2 mức độ cảnh báo :
- Cảnh báo thường (warning): phiên làm việc vẫn duy trì nhưng không tạo thêm kết nối mới.
- Cảnh báo nghiêm trọng (fatal): kết thúc phiên làm việc hiện hành

3.2.4. Giao thức bắt tay (Handshake protocol)
Giao thức bắt tay là giao thức quan trọng nhất của SSL , được hai phía sử dụng để xác thực lẫn nhau và thương lượng để thống nhất các thuật toán xác thực MAC và mã hoá.Thủ tục này cũng trao đổi khoá bí mật dung cho mã hoá và MAC. Thủ tục bắt tay phải thực hiện trước khi trao đổi dữ liệu.
SSL handshake gồm 4 giai đọan (phase):







Giai đoạn 1 :
Triển khai OpenVPN 51b7e4d36c24311f812b5f559711af21_52087103.image014
Hình 3.4: Giao thức bắt tay SSL _Giai đoạn 1

- ClientSSLthiết lậpmộtkếtnốiquagiao thức TCP và gửi tin nhắnClient_Hellođểbắtđầumột cái bắt tay.
- Các máy chủSSLphản ứngvới một thông điệpSever_Hello.

Thông báo của client_hello và server_hello bao gồm các trường sau đây:
· client_hello = (version, random, session id, cipher suite, compression method)
· server_hello = (version, random, session id, cipher suite,compression method)
Trong đó:
Ø Version : Phiên bản SSL
Ø Random : Số ngẫu nhiên dùng cho mục đích xác thực.
Ø session id : nhận dạng các phiên làm việc.
Ø cipher suite:tập các thuật toán mật mã mà hệ thống có khả năng hỗ trợ
Ø compression method : Thuật toán nén mà hệ thống có khả năng hổ trợ.

Giai đoạn 2 :
Triển khai OpenVPN 1d471a2086d205a8012a6da6b92aac2a_52087104.image015
Hình 3.5: Giao thức bắt tay SSL _Giai đoạn 2


- Server gửi chứng chỉ Certificate của nó cho Client.
- ServerKeyExchange: chứa thông tin về Public key của Server mà Client cần để xác thực Server.
- Server yêu cầu Client gửi lại Certificate của Client bằng message Certificate_Request.
- Server_hello_done: kết thúc thương lượng phía server

Giai đoạn 3 :

Triển khai OpenVPN 6a7539f66769d485e5bd81fc5df24f10_52087105.image016
Hình3.6: Giao thức bắt tay SSL _Giai đoạn 3

- Client gửi chứng chỉ Certificate của nó cho Server.
- ClientKeyExchange: chứa thông tin về khóa của Client. Thông điệp này được mã hóa bằng chính Public key của Server. Chính sự mã hóa này bảo vệ thông tin về khóa của Client đồng thời xác thực luôn Server. Vì chỉ có Server mới có thể giải mã được thông điệp này.
- CertificateVerify : là một chữ ký dựa trên thông điệp bắt tay trước bằng cách sử dụng private key của certificate client. Chữ ký này được xác minh bằng cách sử dụng public key của certificate client. Điều này cho phép Server biết rằng client truy cập đến private key của certificate và như vậy certificate thuộc quyền sở hữu của client.









Giai đoạn 4 :
Triển khai OpenVPN 5d59de757fcc9727fe3d0ab55c172a3a_52087106.image017
Hình 3.7: Giao thức bắt tay SSL _Giai đoạn 4
- Change_cipher_spec: cập nhật thông số mã
- Finish: kết thúc quá trình bắt tay thành công

Kết thức Giai đoạn 4 trong giao thức bắt tay SSL VPN là đã hoàn thành xong việc khởi tạo cho việc thiết lập đường hầm an toàn VPN. Sau đó thì trao đổi dữ liệu qua đường hầm

3.3. ỨNG DỤNG VÀ TÍNH PHỔ BIẾN CỦA SSL TRONG VPN
Như đã đề cập, trong một số trường hợp, SLL VPN thường được dùng cho các ứng dụng truy cập từ xa dựa trên Browser (ví dụ: web dựa trên giao diện người dùng), trong khi IPsrc VPN thì được dùng cho giao tiếp site – to – site (hơn là từng client truy cập từ xa ). Khi tiến hành so sánh, thì không có sự khác nhau giữa IPsec VPN và SSL VPN. Cả 2 đều có độ bao mật như nhau.
Bởi vì người truy cập từ xa có thể truy cập vào mạng tại bất cứ vị trí nào, không nhất thiết phải là thiết bị laptop chuyên dụng hay là site VPN đầu xa, các công ty có thể dễ dàng thiết lập một mạng Extranet bảo mật cho đối tác và khách hàng. SSL VPNs có thể cung cấp các ứng dụng lọc ở mức độ rất chi tiết, nó cho phép dể dàng sửa dụng và triển khai. Thêm vào đó, người dùng đầu xa không cần phải nhớ tên hay địa chỉ ip của các thiết bị trong mạng của cty để truy cập vào các server hay ứng dụng, bởi vì tất cả tài nguyên đều có thể cho phép truy xuất từ xa dưới dạng bookmarks, favorites hoặc là web link.
SSL VPN đang được phát triển để theo kịp các yêu cầu của các tổ chức công nghiệp. họ đã đề xuất 1 số giải pháp VPN và từ từ tích hợp với các mạng khác và các dịch vụ bao mật. Nói 1 cách cơ bản, thì có 2 loại giải pháp SSL VPN hiện đang được sử dụng trên thị trường đó là các thiết bị SSL VPN thuần túy và các giải pháp phức tạp được tích hợp trên các thiết bị mạng như router và firewall. Loại thứ 2 cung cấp cho các công ty với mốt số lựa chọn triển khai một thiết bị bảo mật nhưng cung cấp nhiều dịch vụ bảo mật như là firewall, VPN, anti-virut, ….
Trong khi nhiều nhà cung cấp các giải pháp SSL VPN tồn tại (cisco,3com,…), nhưng các thiết bị của Juniper Network có thể xem như là đi đầu trong loại hình thiết bị truy nhập từ xa.
Sẽ rất có ích khi chúng ta đề cập đến việc triển khai SSL VPN trên Windonws Server 2008 hay còn gọi là SSTP. SSTP là một giao thức SSL dựa trên việc thiết lập đường hầm VPN giữa client – Server, được thiết kế để làm cho việc kết nối trở nên dẽ dàng hơn. Bằng cách sử dụng SSTP chúng ta có thể giảm đi chi phí liên quan cho các giải pháp truy nhập từ xa bởi vì SSTP đã được tích hợp là một phần của Windowns Serve 2008. Việc kết nối đến SSTP dựa trên VPN server đòi hỏi Client phải chạy windowns Vista sp1 hoặc cao hơn và RRAS server chạy Windowns Server 2008 sp1 or cao hơn.
      
DuyHung
DuyHung Xuất sắc

Cấp bậc: Xuất sắc

Giới tính : Nam

Bài viết : 1246

Danh vọng : 2256

Uy tín : 32

CHƯƠNG 4 - TÌM HIỂU VỀ OPENVPN


Với sự ra đời của OpenVPN, mộtthế hệ mớicủaVPN.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.

4.1. 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ìnhcủ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.

4.2. Ư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 2cũ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ápVPN 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 máy chủ hoặc khách hàng. Là một máy chủ, OpenVPN chỉ đơn giản là chờ đợi cho đến khi một khách hàng 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 khách hàng.
- 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ốivà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.
- 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 độngvà nhúng: Ngày càng có nhiềuthiết bị di động được hỗ trợ.

4.3. CÁC PHIÊN BẢN CỦA OPENVPN
4.3.1. 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: 


Ngày-tháng- nămPhiên bảnNhững đặc tính / thay đổi quan trọng
13-5-20010.90Phiê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á.
26-12-20010.91Nhiều cơ chế mã hoá đã được thêm
23-3-20021.0TLS dựa vào việc xác thực và trao đổi khoá đã được thêm vào.
28-3-20021.0.2Chức năng sửa lỗi và cải tiến , đặc biệt đối với hệ thống RPM như Redha
9-4-20021.1.0Hỗ trợ mở rộng đói với TLS/SSL
Thêm vào phân luồng dữ liệu
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.
22-4-20021.1.1Các lựa chọn cấu hình tự động cho một mạng OpenVPN.
22-5-20021.2.0Hỗ 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, 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
12-6-20021.2.1Cung 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
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.
10-7-20021.3.0
1.3.1
Phiên bản sửa đổi có nhiều tính năng. Hoạt động với OpenSSL 0.9.7 Beta 2.
23-10-20021.3.2Cổng NetBSD được bổ sung
Hỗ trợ cho việc tạo inetd/xinetd dưới Linux
Giấy chứng nhận SSL/TLS đơn giản đã được bổ sung (rsa)
IPv6 trên TUN đã được thêm vào
7-5-20031.4.0Cải thiện an ninh
Sữa lôi , cải tiến và bổ sung
15-5-20031.4.1Cải thiện , hỗ trợ cho Kernel 2.4
15-7-20031.4.2Cổng Windows đầu tiên xuất hiện
4-8-20031.4.3Phiên bản sửa lỗi ( bug fix)
Bảng4.1: Các lần xuất bản của phiên bản 1
4.3.2. 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.6-beta7 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, va 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

4.3.3. 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áttriểnmột số sản phẩmdựa trênOpenVPNcho các thiết lập kinh doanh. Cảhaiphiên bảnvới sự hỗ trợthươngmạivà thiết bịphần cứng,dịch vụ và hỗ trợ,và một giao diệnquản lýdựa trên websẽcó sẵn.Từ năm 2008, thiết kế lạitrang web củaOpenVPNđãphảnánhmột cách tiếp cậnchuyên nghiệpđối vớikhách hàng doanh nghiệp

4.4. OPENVPN
4.4.1. CÀI ĐẶT OPENVPN
OpenVPN được xây dựng với tính di động và hiện đang chạy trên hầu hết các hệ điều hành bao gồm cả Windows 2000/XP, Linux, Solaris, BSD, và Mac OS X. Kể từ khi nó chạy trong User – Space thay vì như một mô-đun nhân (Kernel), cài đặt là rất đơn giản. Có nhiều tài liệu cài đặt rất chi tiết có trên trang web của OpenVPN. Trên Windows, OpenVPN cài đặt giống như bất kỳ chương trình khác. Nó đi kèm như là thực thi và tất cả những gì bạn cần để làm là nhấp đúp chuột vào trình cài đặt. Nó rất đơn giản. Tuy nhiên vẫn cần phải tìm hiểu cho các phần cấu hình tiếp theo, việc hoàn thành xong việc cài đặt đó chỉ là 1 bước mà thôi. Để tự động khởi động và dừng của OpenVPN ,lúc khởi động lại sẽ cần phải chạy OpenVPN như là một dịch vụ Windows điều này cũng rất đơn giản. Khách hàng chỉ mất tối đa 10 phút cho việc cấu hình. Đối với bất cứ ai đã cố gắng cấu hình và xây dựng trong các Client IPSec của Windows đều sẽ thấy ấn tượng vì con số gây shock này.
Trên Linux cái đặt cũng rất đơn giản,hầu hết các bản phân phối đều có OpenVPn như một phần trong các gói hệ thống. Gentoo có một OpenVPN xây dựng lại và Redhat đã có sẵn RPM. OpenVPN sử dụng các trình điều khiển TAP và TUN ảo. Nếu sử dụng nhân của hệ điều hành linux 2.4.x hoặc cao hơn thì OpenVPN đều được tích hợp sẵn các trình điều khiển. Nếu sử dụng thấp hơn, thì có thể tải về và cài đặt TAP / TUN trình điều khiển khá dễ dàng. OpenVPN có một danh sách khá dài các tùy chọn cài đặt, nhưng chỉ có một thực sự cần thiết đó là tùy chọn pthreads. Tùy chọn này là rất quan trọng vì nó cho phép xử lý đa luồng để tạo ra một kênh điều khiển khác nhau mà trao đổi khóa được thực hiện. Thời gian rekeying mặc định là một giờ, do đó pthreads cho phép bạn loại bỏ độ trễ giờ rekeying qua một kênh riêng biệt và chuyển đổi sang các vật liệu keying mới một cách liền mạch.
Những người quan tâm đến băng thông cũng có thể muốn nhìn vào thư viện nén LZO mà nén dữ liệu trước khi nó được mã hóa. Nén hoạt động bằng cách xác định kiến trúc cơ bản trong cấu trúc gói dữ liệu và sau đó thay thế chung bằng một chủ sở hữu mới có kích thước nhỏ hơn. Một trong những đặc điểm của một thuật toán mã hóa chất lượng là một biểu đồ bằng phẳng, có nghĩa là văn bản được mã hóa không có bất kỳ mô hình chung và do đó không thể được nén.

4.4.2. CẤU HÌNH OPENVPN
OpenVPN được cấu hình tương tự như hầu hết các dịch vụ sử dụng UNIX đó là sử dụng file cấu hình. Một trong những điểm mạnh của OpenVPN đó là định dạng các file cấu hình hầu hết là giống nhau cho tất cả các Platform. Có một vài khác biệt nhỏ, nhưng trong hầu hết các thành phần, file cấu hình là rất tiện lợi. Đây là một ưu điểm rất quan trọng khi tiến hành so sánh với chức năng tương tự được tìm thấy giữa Windown và nhiều loại *NIX.
OpenVPN sử dụng UDP port 5000 để tunnel các luồng dữ liệu. Với phiên bản 2.0, nhiều kết nối có thể sử dụng cùng một Port UDP trên Server, tuy nhiên từ bản 1.6 trở về trước thì mỗi kết nối sẽ sử dụng một Port UDP riêng biệt. Có nhiều ý kiến thắc mắc tại sao sử dụng UDP mà ko phải là TCP, đó chính là vì sẽ phát sinh rất nhiều vần đề khi sử dụng Port TCP. TCP sẽ theo dõi số thứ tự gói, mất gói và yêu câu gửi lại khi có hiện tượng mất gói xảy ra, điều này có thể là rất tốt khi bạn chỉ có một tầng TCP. Tuy nhiên nó còn có cả thời gian đáp ứng đó là khoảng thời gian trong bao lâu trước khi nó tiến hành yêu cầu gửi lại. Cái thời gian này là có thể thay đổi và cơ bản là nó sẽ tăng theo cấp số nhân theo số lượng gói tin sẽ tiếp tục được nhận thêm vào. Nếu như triển khai TCP trên nền TCp, khi đó sẽ có 2 tầng Flow Control tính toán thời gian cho mỗi lần yêu cầu gửi lại. Nếu như hàng đợi xử lý kém, khi đó tầng TCP thấp hơn sẽ có thời gian đợi dài hơn tầng TCP nằm trên và khi đó sẽ xảy ra một khung hoảng thực sự mỗi khi về thời gian yêu cầu gửi lại mỗi khi nhận được yêu cầu trong hệ thống giám sát luồng dữ liệu.
Triển khai OpenVPN Fddc458090bce923afe16ddb85be6a1a_52110358.image018
Hình 4.1: Các giao diện chuẩn của OpenVPN

OpenVPN làm việc ở 2 chế độ. Sử dụng TUN Driver để gửi luồng dữ liệu IP và dùng TAP Driver để gửi luồng dữ liệu Ethernet. Có thể dễ dàng để sử dụng TUN Driver và thiết lập một WINS server trên các thiết bị đầu cuối để sử lý Broadcast Layer 2, chính vì thể sẽ đi vào giải thích rõ về vần đề này. Việc cấu hình TUN là rất dễ dàng và chỉ đòi hỏi một vài lệnh và nhập một vài dòng vào Modules.conf có thể đã có.
Một khi các giao diện TUN được thiết lập, nó sẽ được thực hiện rất trơn tru. OpenVPN sử dụng file cấu hình do đó việc này là rất dễ dàng. Do đó bạn có thể thay đổi bất cứ điều gì để có thể cải thiện hiệu quả về bảo mật và hiệu suất làm việc OpenVPN

User nobody
Bản chất của việc quản trị bảo mật đó chính là ý thức của người sử dụng các ứng dụng chạy dưới OpenVPN. Các tập tin cấu hình đã thiết lập các tùy chọn này:
# Downgrade UID and GID to
# "nobody" after initialization
# for extra security.
;user nobody
;group nobody
Điều bắt buộc là bạn phải ghi chú thêm vào 2 dòng dưới. Điều này cho phép OpenVPN khởi tạo ra một các User và các nhóm Nobody. Đối với những người không quen với UNIX, “ nobody” là một người sử dụng không có đặc quyền với sự cho phép chỉ đủ để thực hiện các hành động cơ bản giúp cho OpenVPN hoạt động nhưng không đủ để truy cập vào những phần khác. Nếu như một kẻ tấn công bằng cách nào đó có thể tìm ra được lỗ hổng của OpenVPN, thì họ sẽ có được toàn bộ quyền giống như là quyền của User đang có. Nếu User là quyền “ nobody”, kẻ tấn công sẽ bị hạn chế tức thì để tránh thiệt hại cho thiết bị. Không ít thì nhiều, điều này sẽ làm chậm đi các hành động của kẻ xâm nhập và từ đó giúp cho bạn có thời gian để phát hiện ra sự xâm nhập này.


Chroot the Server
Nếu như đã sử dụng nhiều loại UNIX, ngay sau dòng User “ Nobody ” nên thêm vào một lựa chọn như sau:
chroot /usr/local/openvpn
Tùy chọn này sẽ khóa các quá trình OpenVPN vào thư mục OpenVPN (hoặc bất cứ điều gì bạn chỉ định) và không cho phép nó để truy cập vào phần còn lại của hệ thống. Điều này cung cấp một lớp bảo vệ chống lại bất kỳ tổn thương trong tương lai, cho phép sự thỏa hiệp của daemon OpenVPN. Sử dụng chroot kết hợp với người sử dụng "Nobody" và bạn cung cấp một mức độ bảo vệ chủ động chống lại các cuộc tấn công không biết rằng có thể xuất hiện trong tương lai.

TLS – auth
Và nếu các tùy chọn ở trên là không đủ để làm cho bạn cảm thấy an toàn, OpenVPN bao gồm các tùy chọn tls-auth. Với kích hoạt tùy chọn tls-auth, OpenVPN sẽ sử dụng một mức độ xác thực thứ hai bằng cách tạo ra một chìa khóa HMAC để sử dụng trong quá trình bắt tay TLS. Tính năng này kết hợp một số quyền administative như tất cả các máy kết nối phải có Pre – Share bí mật trước khi chia sẻ thêm, nhưng nó cung cấp một mức độ cao của bảo vệ chống lại các cuộc tấn công như lỗi tràn bộ đệm trong OpenSSL. Với tls-auth được kích hoạt, một kẻ tấn công quét Internet cho các thiết bị SSL được kích hoạt thậm chí sẽ không khởi động bắt tay với một TLS mà không có chữ ký HMAC thích hợp.

Adjust the MTU
Kích thước dự kiến của ​​đường hầm và kích thước đường hầm thực tế trên hai đầu của kết nối có thể khác nhau. Điều này sẽ cung cấp một thông báo lỗi trong các tập tin đăng nhập nói rằng các tùy chọn từ xa thực tế không phù hợp với các tùy chọn từ xa dự kiến​​. Khi đọc thông báo này chặt chẽ sẽ thấy rằng liên kết MTU hoặc tun-MTU không phù hợp với cả hai bên. Điều này được gây ra bởi các tiêu đề tăng kích thước gói lớn hơn dự kiến ​​và có thể gây ra phân mảnh và sự xuống cấp hiệu năng. Có thể được khó khăn để tìm thấy OpenVPN vẫn sẽ chạy một cách chính xác và không để cho biết có một vấn đề, đầu mối duy nhất là giảm hiệu suất mà chỉ có thể khám phá ra dưới tải cực. Phải nhìn vào các bản ghi để tìm thấy điều này. Việc sửa chữa được đề xuất là sử dụng các tùy chọn tun-MTU và các tùy chọn MSS-sửa chữa trong file cấu hình.
Tun – mtu 1500
Mss – fix 1400
Những giá trị này sẽ loại bỏ các lỗi không phù hợp và phân mảnh. Có thể cần phải chỉnh sửa với các giá trị một chút để có được nó làm việc hoàn hảo trên thực hiện của từng trường hợp.

Route
Có thể giải thích rất nhanh về lệnh route. Vì đang kết nối đến một mạng từ xa, có thể sẽ cần phải sử dụng lệnh route để có được lưu lượng truy cập qua đường hầm VPN. Sẽ rất có thể có một cái gì đó giống như 192.168.1.x trên một mặt của đường hầm và 192.168.2.x ở phía bên kia.Điều này có nghĩa là cần phải nói với bảng định tuyến để sử dụng TUN VPN / thiết bị TAP để truy cập mạng riêng. Windows và tuyến đường sử dụng UNIX chỉ là một chút khác nhau vì vậy khi làm cho các tập tin cấu hình, sẽ cần phải chắc chắn rằng sử dụng định dạng chính xác. Đây là một trong những thay đổi nền tảng cụ thể cần phải thực hiện các tập tin cấu hình. Như một ví dụ nhanh chóng:
Route add – net 10.1.0.0/24 qw 10.2.0.1 định dạng cho UNIX.
Router 10.1.0.0 255.255.255.0 10.2.0.1 định dạng cho windows

4.4.3. TÍNH NĂNG CỦA OPENVPN
Thông lượng / hiệu suất
Các giải pháp VPN khác đòi hỏi phải mã hoá và giải mã trên luồng thông tin làm hao tốn CPU. Một trong các biện pháp quan trọng của một VPN là thông lượng của nó hoặc số lượng dữ liệu là có thể vượt qua trước khi nó là không thể để theo kịp với các hoạt động giải mã/mã hóa.Với phần cứng những VPN này thì có thể dễ dàng tìm ra thông số nhưng phần mền như OpenVPN thì lưu lượng phụ thuộc nhiều vào phần cứng.OpenVPN được thử trên 1 máy với bộ vi xử lý Pentium III 1Ghz với Ram 512K chạy trên Gentoo Linux .Ở cuối đường hầm thì dùng máy với bộ vi xử lý Pentium IV 2.7 GHx chạy trên win XP. Đường nối giữa 2 máy lưu lượng là 3Mbps và OpenVPN có thể làm việc được với cấu hình này mà không bị giảm thiểu về thông lượng. Đối với các hệ thống có cấu hình yếu mà không có nhu cầu mở rộng ra các site ngang hàng thì nên sử dụng OpenVpn cho các ứng dụng vừa và nhỏ. Còn nếu mà có tính dự phòng hoặc chia tải thì có thể triển khai nó với các dịch vụ lớn hơn. Thêm vào đó, OpenVPNdựa trên phần cứng mà có thể triển khai SSL, có khi sử dụng chuẩn SSL /TS.OpenVPN không có hạn chế số đường hầm.

NAT 
Một trong những hạn chế nghiêm trọng của IPSec VPN là NAT. Authentication Header(AH) của IPSec băm địa chỉ nguồn như là một phần của quá trình xác thực của nó.Nếu NAT thay đổi địa chỉ nguồn, VPN ở đầu bên kia của đường hầm sẽ nhận được một hash khác nhau khi kiểm tra tính toàn vẹn gói tin và nó sẽ nghĩ gói tin đã bị giả mạo. Các giải pháp cho vấn đề này trong IPSec là để chạy trong đường hầm bằng cách sử dụng chỉ Encapsulating Security Payload(ESP). Điều này sẽ giúp các địa chỉ nguồn từ được băm trong kiểm tra tính toàn vẹn gói. OpenVPN, hay chính xác hơn SSL/TLS, không chạy chứng thực trên địa chỉ nguồn để nó thành công có thể đi qua một thiết bị NAT.

Xác thực X509 
OpenVPN cho phép bạn sử dụng Pre – Share key, hoặc giấy chứng nhận X509 để xác thực, tất cả các sản phẩm chất lượng khác VPN. Các giải pháp an toàn và mạnh mẽ hơn là sử dụng giấy chứng nhận.

Dễ dàng cấu hình
IPSecVPN có 1 vấn đề là cấu hình phức tạp. Chính sự phức tạp luôn đi ngược với sự đám bảo an ninh, tạo nhiều lỗ hổng. Trong khi đó OpenVPN cung cấp mạnh mẽ mặc định cấu hình đơn giản phù hợp với nhu cầu thực hiện nhất. OpenVPN có thể được cấu hình và cài đặt bởi một người có kiến ​​thức bảo mật cơ bản trong khi vẫn duy trì một mức độ bảo mật cao.

Cân bằng tải
Cân bằng tải cho phép liên kết công suất cao để xử lý một lượng lớn lưu lượng truy cập bằng cách chia tải giữa các máy chủ giống hệt nhau. Đây là hoạt động trong suốt đối với các ứng dụng và người sử dụng. OpenVPN không được xây dựng các tính năng để xử lý cân bằng tải, nhưng nó hoàn toàn giải quyết dc dễ dàng bằng cách sử dụng iptables.
Trước đây, package tường lửa/NAT phổ biến nhất chạy trên Linux là ipchains. Tuy nhiên, theo thời gian, ipchains có một số nhược điểm nên đã được Netfilter thay bằng iptables, với các improvement sau đây:
- Tích hợp tốt hơn với nhân của hệ điều hành Linux.
- Cho phép load tốt hơn các modules đặc biệt của iptables giúp cho việc cái thiện độ tin cậy và tốc độ xử lý.
- Là một statefull firewall.
- Filter packet dựa trên địa chỉ MAC và các cờ của TCP header.
- NAT tốt hơn.
- Hỗ trợ việc tích hợp một cách trong suốt với các chương trình như Web proxy: Squid.
- Một số thông số limit có thể được sử dụng trong iptables giúp cho việc ngăn chặn được các cuộc tấn công DOS.
Vậy có thể tóm tắt lại: iptables là một package firewall/NAT được sử dụng rộng rãi nhất hiện nay và được tích hợp sẵn hay cài đặt sử dụng trên các hệ điều hành của Redhat.

Chuyển đổi dự phòng
Một tính năng quan trọng cho các doanh nghiệp lớn là chuyển đổi dự phòng. Khi trụ VPN chết vì một lý do nào đó , thì phái có đường dự phòng. Một lần nữa, OpenVPN không có xây dựng tính năng để xử lý vấn đề này nhưng với việc bổ sung thêm 1cáp nhỏ và định tuyến tĩnh, thì có thể tạo ra đường dự phòngtới 1 trụ OpenVPN khác và tạo ra hệ thống chuyển đổi dự phòng đơn giản không quá nhiều rắc rối.

Trung tâm quản lý
Khi chúng ta bắt đầu nói về việc triển khai thực sự lớn, quản lý tập trung sẽ trở thành một tính năng nhiều quản trị viên yêu cầu. Một giao diện điều khiển cho phép giám sát và cấu hình các thiết bị của nhiều VPN từ một vị trí trung tâm là một tính năng được tìm thấy trong một số các sản phẩm thương mại lớn như các sản phẩm cao cấp từ Cisco, Checkpoint, hoặc NetScreen. OpenVPN không cung cấp bất kỳ khả năng như vậy, nhưng hi vọng trong tương lại một số lập trình viên đóng góp cho một dự án mã nguồn mở bằng cách thiết kế tính năng này.

4.4.4. Bảo mật OpenVPN
OpenVPN được xây dựng trên một nền tảng an ninh vững chắc. SSL / TLS, là hệ thống được sử dụng rộng rãi nhất trong ngành công nghiệp. Nó đã tồn tại rất lâu mà không hiển thị bất kỳ điểm yếu nào. Thực hiện đúng, SSL /TLS bảo mật tốt nhất hiện có. Người sáng tạo ra OpenVPN, James Yonan, đã thực hiện một công việc tuyệt vời SSL /TLS. Nhưng ông đã không dừng lại ở đó. OpenVPN cũng có thêm tính năng làm tăng khả năng của mình để đối phó với lỗ hổng chưa biết có thể xuất hiện OpenVPN hoặc lõi SSL /TLS.

Sinh khoá
Chỉ cần một lưu ý về cách sử dụng khóa. Khi SSL / TLS bắt tay chứng thực cả hai đầu, nó sẽ tạo ra bốn khoá khác nhau, một khoá HMAC gửi , một khóa HMAC nhận, khoá mã hóa / giải mã gửi, và một khóa mã hóa / giải mã nhận. Không bao giờ nên sử dụng cùng 1 khoá cho nhiều hơn một dịch vụ bảo mật cơ bản (không đối xứng, đối xứng, băm, hoặc chữ ký kỹ thuật số) và OpenVPN đúng với trường hợp này.

Khoá dẫn xuất/trao đổi 
Để bảo vệ dữ liệu, ta cần phải mã hóa nó với mã hóa đối xứng. Để làm được điều này, cần phải có khóa đối xứng trên mỗi đầu của kết nối. Điều này đòi hỏi một giao thức dẫn xuất/trao đổi khóa. IPSec sử dụng mộ thệ thống gọi là Internet KeyExchange (IKE) trao đổi các khoá. Hệ thống này bao gồm sáu meseage qua lại mà cuối cùng dẫn đếnviệc chứng thực của mỗi hệ thống và trao đổi khoá đối xứng. OpenVPN sử dụng chuẩn bắt tay RSA/DHE, có chứng thực của khách hàng để thực hiện cùng một mục tiêu. Dưới đâylà các bước bắt tay.
Triển khai OpenVPN D58cc4f1789ac4f2f1c737bb14fdaa25_52110361.image019
Hình4.2: Quá trình bắt tay

Thuật toán mã hóa đối xứng
Đến thời điểm này, ta nhận thấy ren việc bảo vệ của IPSec và SSL/TLS là khá giống nhau. Nó phụ thuộc vào các thuật toán mật mã mã hóa.Trong việc lựa chọn và hầu hết các triển khai IPSec cho phép lựa chọn một loạt các thuật toán. OpenVPN chắc chắn cho chúng ta một danh sách tốt để lựa chọn, nhưng nó mặc địnhcung cấp một lựa rất tốt bằng cách sử dụng bf-cbc và sha1.
Khi lựa chọn một thuật toán mã hóa đối xứng, OpenVPN tránh sử dụng bất kỳ chương trình bao gồm DES. DES chỉ sử dụng một khóa56-bit không còn được coi là an toàn. Và tránh sử dụng cả các thuật toán 3DES, với chiều dài khóa hiệu quả của 112bit, vẫn được coi là an toàn,nhưng nó đòi hỏi xử lý lâu vì nó chỉ chạy các thuật toán DES ba lần. Có nhiều thuật toán có được mạnh mẽ hơn và nhanh hơn và bạn không cần phải dựa vào 3DES nữa.
Chúng ta có thể sử dụng một chế độ mã hóa liên tục nhằm thay đổi thông tin mật(cipher text) của chúng ta một cách ngẫu nhiên. Nếu một kẻ tấn công có thể lấy được đủ thông tin mật được mã hóa với một khóa thông thường, họ có thể có thể làm suy yếu cái khóa để gây ra tổn hại. Điều này là rất khó làm và thường đòi hỏi một số lượng lớn thông tin mât, tuy nhiên nếu sử dụng một đường hầm giữa 2 mạng trong một thời gian dài, bạn có thể tạo ra rất nhiều thông tin được mã hóa trong khoảng thời gian đó. Khi không sử dụng Pre – Share key, OpenVPN sẽ mặc định thay đổi các Key của nó theo từng giờ để tăng thêm một chút mức độ bảo vệ, chúng ta có thể sử dụng chế độ Cơ yếu Chaining Block (CBC). Cơ chế này, ngõ ra thuật toán mã hoá của khối thứ nhật được cộng( XOR) với khối thông tin gốc thứ hai tước khi mã hoá và liên tiếp như vậy cho đến khối cuối cùng. Đối với khối đầu tiên, do không có khối nào mã hoá trước nó , người ta phải tạo một khối thông tin đặc biệt, thương là ngẫu nhiên , có kích thước đúng bằng kích thước khối của thuật toán mã. Khối thông tin này được gọi là vector khỏi tạo, viết tắt là IV(Initial Vector).
OpenVPN mặc định sử dụng bf-cbc cho mã hoá đối xứng của nó. Điều nàyđề cập đến Blowfish trong chế độ Cipher Block Chaining bằng cách sử dụng một khóa128-bit. Blowfish là một thuật toán rất mạnh không có điểm yếu tính tới bây giờ .Với khoá 128-bit cung cấp một không gian rộng lớn để ngăn chặn các cuộc tấn công bằng cách dò khoá vì không có đủ thời gian để thực hiện. Blowfish không chỉ rất an toàn, mà thuật toán của nó cũng nhanh hơn.
Trên Linux,Ta có thể chạy OpenSSL kiểm tra tốc độ và để xem tốc độ tương đối của các thuật toán trên phần cứngcủa máy:
Spiritwrackroot#opensslspeed

Triển khai OpenVPN C0db7df1ee94f55572ffffb2a9ad2f3e_52110362.image020
Hình 4.3: Tốc độ tương đối của các thuật toán
Những con số trên sẽ giúp chúng ta hiểu được các thuật toán được lựa chọn tốt. Chỉ cần nhìn vào số 64-byte để có một tham chiếu chung. OpenVPN không sử dụng DES, hãy so sánh tốc độ của nó; DES có thể mã hóa / giải mã khoảng 22M mỗi giây. DES-EDE3 được sử dụng để đại diện cho 3DES và không ngạc nhiên gi khi thấy nó trong khoảng 7,6M mỗi giây. Đây là khoảng 1 / 3 DES, có ý nghĩa như 3DES là thực sự chỉ DES chạy ba lần. Bây giờ nhìn vào Blowfish, gần 35M mỗi giây, trên 50% nhanh hơn DES và gần 500% nhanh hơn3DES. Advanced Encryption Standard (AES) trong chế độ 128-bit cũng là một lựa chọn tuyệt vời cho những thuật toán mật mã khối chạy khoảng 21M mỗi giây. Nhưng tương tự DES , AES cung cấp không gian 192-bit và 256 - bit quan trọng với thông lượng 17M / s và 15M / s tương ứng.

HMAC/Hashing

Khi đã có khoá để tao đổi và đang sử dụng một thuật toán đối xứng để bảo đảm đường hầm, thì 2 sites có thể bắt đầu trao đổi dữ liệu. Có hai điều cần khi truyền dữ liệu. Trước tiên, đảm bảo rằng những gì bên gửi gửi là giống những gì nhận được ở đầu bên kia. Những kẻ tấn công không thể đọc được message khi họ vượt qua các mạng công cộng, nhưng vẫn có thể đi vào và ngẫu nhiên thay đổi dữ liệu. Những kẻ tấn công sẽ không biết những gì họ đã thay đổi, nhưng nó có thể có tác động tiêu cực khi dữ liệu đến phía bên kia. Bảo vệ và chống lại dữ liệu bị sai lệch hoặc giả mạo được gọi là toàn vẹn dữ liệu (data integrity). Thứ hai, đảm bảo chống các hành vi từ chối dịch vụ của 1 hoặc nhiều phía tham gia trao đổi thông tin (non-repudiation ) .
Để đảm bảo tính toàn vẹn dữ liệu, thì OpenVPN sử dụng thuật toán hash.Thay vì mã hoá toàn bộ thông tin và gửi đi thì ta xây dựng 1 bản tóm tắt , rùi hash 1 chiều bằng cách biến bản tóm tắt thành một chuỗi dài cố định(128bitMD5và160bit choSHA1) , sau đó mã hoá bản tóm tắt thông tin và đính kèm ở cuối thông tin rùi gửi đi .Khi đầu nhận nhận được thông tin và so sánh kết quả .Nếu chuỗi nhận được và chuỗi bên nhận sau khi hash không thay đổi thì dữ liệu được đảm bảo toàn vẹn.
Nhưng kẻ tấn công chỉ làm 1 việc đơn giản là loại bỏ các chuỗi băm, thay đổi các thông tin , và thực hiện một chuỗi băm mới. Để tránh trường hợp này thì Open sửa dụng thuật toán HMAC.Trước khi hash thông tin 1 chiều, thì sẽ đính kèm một khóa bí mật vào phía trước của nó. Khoá này sẽ nhận được hash cùng với thông tin. Khi thông tin đã nhận được ở đầu kia của đường hầm, người nhận sẽ mở message và chắc chắn rằng có khoá được kèm theo phía trước.Khoá HMAC này, là một trong những khóa để trao đổi ở trên trong bước dẫn xuất/ Exchange. Nếu kẻ tấn công thay đổi các thông điệp và gắn một băm mới, họ sẽ không thể tạo được khoá và do đó người nhận sẽ biết được thông báo không đến từ bên gửi. Một tác dụng nữa của việc sử dụng một HMAC là chúng ta có một cách để ngăn chặn cuộc tấn công man-in-the-middle.
OpenVPN lựa chọn theo mặc định duy nhất thuật toán băm mà chúng ta nên sử dụng, SHA-1. MD5 được sử dụng rộng rãi, nhưng đã bắt đầu crack. Chiều dài của thuật toán hash bằng nữa kích thước không gian khoá . vì vậy khoá MD5128-bit thực sự chỉ có 2^64 lần thử nên có thể tấn công bằng phương pháp thử tuần tự . Nên MD5 hiện nay được xem như là 1 hàm băm không an toàn .Vì thế OpenVPN sử dụngthuật toánbămSHA-1. SHA-1 sử dụng một khóa160-bit thì cần có khoảng 2^80 khôi thông tin được xử lý ,khoảng65.000 lần thử nên khó khăn hơn hơn MD5. SHA-1 đã không bi suy yếu bởi các cuộc tấn công toán học. Biểu đồ tốc độ ở trên cho thấy 23M /s cho MD5 và 20M/s với SHA-1. OpenVPN triển khai hầu hết với tốc dộ 20M/s

4.4.5. Nhược điểm của OPenVPN
- Không tương thích với IPSec. 
- OpenVPN không được định nghĩa bởi bất kỳ RFC nào. 
- Còn ít người biết cách sử dụng OpenVPN. 
- Không có giao diện đồ họa làm việc nào dành cho việc quản trị.

4.5. SO SÁNH OPENVPN VỚI IPSEC VPN
Sau đây là bảng so sánh. Dấu „+‟ chỉ điểm mạnh, dấu „-„ chỉ điểm yếu.


IPsec VPNOpenVPN
+ Chuẩn công nghệ VPN-Có ít người biết , không tương thích với IPsec.Có thể sớm đạt chuẩn
+Nền tảng phần cứng ( thiết bị )-Chỉ trên máy tính, nhưng trên tất cả hệ điều hành , ngoại trừ các thiết bị mà Unix được nhún và và chạy ứng dụng như OpenWrt hay tương tự
+ Công nghệ đã nổi tiếng-Công nghệ mới, vẫn còn đang phát triển
+ Nhiều giao diện đồ hoạ cho ngừi quản trị-Không có giao diện đồ hoạ chuyên nghiệp
-Việc sửa đổi của ngăn xếp IP phức tạp+ Kỹ thuật đơn giản
-Cần thiết sửa đổi nghiêm trọng trong nhận HDH+ Giao tiếp mạng và gói tin mạng được chuẩ hoá
-Cần thiết phải có quyền quản trị+OpenVPN có thể chạy trong không gian ngừi sử dụng
-IPsec của các hãng khác nhau không tương thích+Kỹ thuật mã hoá được chuẩn hoá
-Kỹ thuật phức tap, cấu hình phức tạp+Công nghệ modun cấu trúc tốt và dễ cấu hình
-Khó học hỏi đối với ngừi mới+Dể học, dể thao tác cho ngừơi mới
-Cần thiết đặt vài cổng và giao thức trong tường lửa+Chỉ cần 1 cổng trong tường lửa
-Có vấn đề với địa chỉ động ở cả 2 phía+DynDNS hoạt động hoàn hảo và kết nối lại nhanh hơn
-Có vấn đề bảo mật với kỹ thuật IPsec+SSL/TLS như lớp mã hoá chuẩn công nghệ
+Định hướng lưu lượng
+Tốc độ nhanh
+Tương thích với tường lừa và proxy
+Không có vấn đề với NAT
+Thích hợp cho người dùng lưu động


























Bảng 4.2: So sánh giữa OpenVPN và IPsec VPN
Last edited by lamvantu; 28-12-2012, 01:46 PM.
      
DuyHung
DuyHung Xuất sắc

Cấp bậc: Xuất sắc

Giới tính : Nam

Bài viết : 1246

Danh vọng : 2256

Uy tín : 32

CHƯƠNG 5:
TRIỂN KHAI MẠNG VPN SỬ DỤNG HỆ THỐNG OPENVPN

Giải pháp mạng riêng ảo sử dụng mã nguồn mở OpenVPN cho phép các nhân viên thường đi công tác xa có thể ngồi bất kì nơi đâu có kết nối internet đều có thể truy cập vào các ứng dụng, dịch vụ của hệ thống mạng nội bộ trong công ty 1 cách an toàn và đảm bảo tính toàn vẹn của dữ liệu và thông tin người dùng. Với những tính năng ưu việt OpenVPN hỗ trợ cho người quản trị dễ dàng kiểm soát được những kết nối bất kì đâu. Trong mô hình này , em chỉ triển khai cài đặt và cấu hình OpenVPN server trên hệ điều hành trên máy tính để bàn: Windows server 2003. Về phía OpenVPN client, dụng hệ diều hành Windows 7 trên máy tính laptop. Máy client và server có thể kết nối với nhau ở đầu xa .

5.1. MÔ HÌNH TRIỂN KHAI
Triển khai OpenVPN C207682819922b368e2345004077a10b_52326324.image023
Hình5.1: Mô hình triển khai hệ thống OpenVPN
Trong đó: 
- VPN Server có địa chỉ thực là 192.168.1.128/24 , Địa chỉ đường hầm VPN là 10.8.0.1/24.
- VPN Client có địa chỉ thực là 192.168.1.11/24 , Địa chỉ đường hầm VPN là 10.8.0.2/24.
5.2. TIẾN TRÌNH TRIỂN KHAI CHUNG
Phần này trình bày các bước triển khai chung áp dụng cho tất cả hệ thống (server và client)
(1). Download phần mềm cài đặt OpenVPN thích hợp
(2). Cài đặt phần mềm OpenVPN. Đối với Linux có thể cài đặt trực tiếp từ internet
(3). Tạo các khóa (key), cụ thể có các khóa sau:
- ta: dùng mã hóa và bảo vệ dữ liệu.
- ca: dùng để chứng thực các khóa của client và server.
- server: khóa của OpenVPN server.
- client: khóa của các client. Nếu có nhiều client thì mỗi client được tạo một khóa riêng.
- dh: (DH: Diffie–Hellman) dùng cho việc trao đổi khóa.
(4). Chỉnh sửa thông tin thích hợp trong tập tin cấu hình của client và server
(5). Thiết lập thông số trên router (hay modem ADSL) như: port forwarding,
static route, …
(6). Khởi tạo OpenVPN phía server. OpenVPN phải khởi tạo trước.
(7). Khởi tạo OpenVPN phía client

5.3. CÀI ĐẶT OPENVPN
5.3.1. Cài đặt trên Windows server 2003 làm OPENVPN server
· Download phần mềm về máy tại địa chỉ 
http://openvpn.net/index.php/open-source/downloads.html
(Em đang sử dụng phiên bản openvpn-2.2.1)
· Cài đặt phần mềm. Sau khi kích hoạt sẽ trải qua các màn hình sau:
Triển khai OpenVPN 040677837e35cff1a57b22af4cd6c18a_52326325.image024
Hình 5.2: Màn hình cài OpenVPN trên Windows – 1



Chấp nhận các tùy chọn mặc định.
Triển khai OpenVPN 9d55d135533718fdda159d44cc3952df_52326327.image025
Hình 5.3: Màn hình cài OpenVPN trên Windows – 2
Chọn các thành phần cài đặt để phù hợp từng chức năng (như client& server)
Triển khai OpenVPN Eaf716989da81c37d6d77872e039d991_52326330.image026
Hình 5.4: Màn hình cài OpenVPN trên Windows – 3


Bắt đầu cài đặt
Triển khai OpenVPN 9e612ba1ef819f95d00707b8dd4abfb5_52326332.image027
Hình 5.5: Màn hình cài OpenVPN trên Windows – 4
Tiến trình đang cài đặt:

Triển khai OpenVPN 11e166e9da924e34d65262c1b7ae9a79_52326338.image028
Hình 5.6: Màn hình cài OpenVPN trên Windows – 5


Tiến trình cài đặt thành công.
Triển khai OpenVPN 6418110d104bfa2a3f68f49553dda327_52326350.image029
Hình 5.7: Màn hình cài OpenVPN trên Windows - 6
Reconmment : Đối với win 7/vistar thì nên chạy ở mode administrator.
Triển khai OpenVPN 82fac60e69f835cb2c58bedb2ca20a52_52326355.image030
Hình 5.8: Màn hình cài OpenVPN trên Windows - 7



Sau khi cài đặt, một biểu tượng của OpenVPN xuất hiện trên màn hình.

Triển khai OpenVPN 808504413d2a09231ed834fdf1661bba_52326360.image031
Hình 5.9: Biểu tượng openVPN trên màn hình
Và bật dịch vụ OpenVPN trong services lên :
Triển khai OpenVPN D8e3813abfbf56041e2875370fd4734b_52326366.image032
Hình 5.10: OPenVPNservices đang ở chế độ manual và chưa start lên

Triển khai OpenVPN 176ec27556b5ae99f08ac7c38c63cc42_52326372.image033
Hình 5.11: Sau khi bật dịch vụ OpenVPN lên
5.3.2. Cài đặt trên Windows 7 làm OPENVPN client
Trình tự cài đặt OpenVPN trên Windows 7 cũng giống như trình tự cài đặt trên Windows server 2003. Chỉ có một chút lưu ý là trước khi cài đặt, ta điều chỉnh quyền admin như hình:
Triển khai OpenVPN 9fba83f24c9e53cef8b9b2ee5772e56e_52326374.image034
Hình 5.12: Điều chỉnh quyền admin để cài OpenVPN
5.4. CẤU HÌNH OPENVPN
5.4.1. Cấu hình trên OpenVPN server (Windows server 2003)
Các bước chuẩn bị: 
a. Chuyển đến thư mục C: \Program Files\OpenVPN\essy-rsatại dấu nhắc lệnh:cd "C:\Program Files\OpenVPN\easy-rsa"

b. Bắt đầu cấu hình OpenVPN 
Sử dụng câu lện “init-config “.
Chú ý : Chỉ chạy 1 lần duy nhất trong quá trình cài đặt

Triển khai OpenVPN Ec90535bc67c2ba315cda23efdc15a56_52326382.image035
Hình 5.13: Lệnh vars
c. Mở file vars.bat và thêm vào các dòng như :
set KEY_COUNTRY=VN
set KEY_PROVINCE=HCM
set KEY_CITY=HCM
set KEY_ORG=PTIT
set KEY_EMAIL=dokhanh.ime@gmail.com
Sau đó save lại

d. Chạy câu lệnh:
Vars
Clean-all

Xây dưng Certificates và keys
a. Tạo giấy chứng nhận CA và keys
Khóa này dùng để chứng thực cho các khóa của server và client trong quá trình xác thực, đảm bảo các đối tác truyền thông là hợp lệ.
Sử dụng câu lệnh : “build-ca”




Triển khai OpenVPN 5224519c6ed20e06a287f1864fa39170_52326385.image036 
Hình 5.14: Lệnh tạo CA


b. Tạo khoá và chứng thực cho server
Dùng lệnh “build-key-server server”
Triển khai OpenVPN 9fb7938a1359de713ce80ac5df476d80_52326389.image037
Hình 5.15: Lệnh tạo khóa cho server


c. Tạo khoá và chứng thực cho client
Triển khai OpenVPN 9b0d74b52b2691142a05e949d87c9ed2_52326393.image038
Hình 5.16: Lệnh tạo khóa cho client



d. Tạo tham số DH (Diffie Hellman) 
Tập tin này dùng để quản lý việc trao đổi khóa. Nó chỉ đƣợc đặt trên OpenVPN server. 
Lệnh sử dụng: “build-dh”

Triển khai OpenVPN 6dcf7e77924e0c5669c3ce18c7f176a8_52326397.image039
Hình 5.17: Lệnh tạo tham số DH
Các tập tin và khóa vừa tạo
Triển khai OpenVPN 0abd9c9c3bc80cb54ee3972746cf3e17_52326399.image040
Hình 5.18: Các khóa và tập tin vừa tạo
Triển khai OpenVPN 36f1d76141d0b6bde9e304602cb9cbbf_52326402.image041
Bảng 5.1: Thống kê các tập tin và khóa cần tạo



e. Tạo tập tin cấu hình cho OpenVPN server
Tên tập tin là server.ovpn, đặt trong thư mụcC:\Program Files\OpenVPN\config
Triển khai OpenVPN 09e2c874b14055f8a8c6eb941c3738d3_52326405.image042
Hình 5.19: Tạo tập tin cấu hình server.ovpn
Chú ý : các dấu # và ; nhằm mục địch giải thích

5.4.2. Cấu hình trên OpenVPN client (Windows 7)
· Sau khi cài đặt, thư mục cấu hình OpenVPN trên máy Windows 7 là: C:\ProgramFiles\OpenVPN\config\. Ta chép một số tập tin đã tạo trên máy OpenVPN server vào thư mục này. Giả dụ máy này là win7-laptop:
ca.crt
client1.crt
client1.key
client1.ovpn
· Kế tiếp, điều chỉnh tập tin cấu hình client.ovpn như sau:
Triển khai OpenVPN D02ae13acfd9d5e7e6e5b9db3be90d7d_52326409.image043
Hình 5.20: Tạo tập tin cấu hình client.ovpn
Chú ý : “remote my-server-1 1194” , my-server-1 được thay thế vào là havu.dyndns-ip.com ( được tạo bởi phần mềm DynDNS Updater configuration ) với mục đích là tạo 1 tên miền choc lien trỏ tới , tránh việc địa chỉ public của modem thay đổi
Triển khai OpenVPN E70911fe25852e4b4869241b4188787e_52326411.image044
Hình 5.21: Trang DynDNS.com để tạo domain

5.4.3. Cấu hình trên Router
Để kết nối được OpenVPN qua môi trường Internet, ta phải cấu hình các thông số trên router. Có một trở ngại là mỗi loại router có một giao diện riêng và cách thức cầu hình riêng cho nên ta không thể đƣa ra một phương cách chung được.
Trong phạm vi thiết bị phục vụ báo cáo, tôi sử dụng modem ADSL của FPT để cho phép các máy tính trong mạng LAN truy cập internet.
Thực hiện cấu hình như sau:
(1). Truy cập vào router và mở trang web quản trị với quyền admin.
(2). Vào Network -> NAT -> Port forwarding
(3). Chọn Add, nhập thông số, bấm nút Save/Apply, như hình:
Triển khai OpenVPN 02363d0917c8251302fd09b08435a3bc_52326414.image045
Triển khai OpenVPN 1a72198e655ca4b1612aa9ff33742081_52326417.image046
Hình 5.22: Kết quả cấu hình Port Forwarder trong ADSL FPT

(4). Chọn tiếp Advanced -> Static route -> Bấm nút Add
(5). Nhập thông số định tuyến tĩnh để nối thông hai mạng: 192.168.1.0/24 và 10.8.0.0/24 -> Chọn nút Save/Apply.
Triển khai OpenVPN 45c4594bbe77fea019757930ec875cf8_52326420.image047
Triển khai OpenVPN Ca51a35dacde6e50ef50c195c6bd29f1_52326427.image048 

Hình 5.23: Kết quả cấu hình định tuyến tĩnh trong ADSL
(6) Reboot lại modem
5.5. KẾT NỐI OPENVPN
OpenVPN server khởi tạo trước, OpenVPN client khởi tạo sau
5.5.1. Khởi tạo OpenVPN server (Windows server 2003)
· Double-click lên biểu tương OpenVPN trên màn hình (hoặc trong Start Menu), một biểu tương OpenVPN màu đỏ xuất hiện ở System Tray của server


Triển khai OpenVPN E1acb3c1d1c004531c97416857bef7f9_52326431.image049
Hình 5.24: OpenVPN server đã chạy nhưng chưa sẵn sàng nhận kết nối
· Bấm phải chuột lên biểu tượng này -> chọn Connect.
Triển khai OpenVPN 82c305927cc7bc683780d58db017afb7_52326434.image050
Hình 5.25: Lệnh connect để khởi tạo kết nối
· Nếu kết nối thành công, sẽ xuất hiện thông báo và IP (ảo) của OpenVPN server là 10.8.0.1.

Triển khai OpenVPN 76adf6fca8a999e28a87927906d3ddcd_52326435.image051
Hình 5.26: OpenVPN server đã sẵn sàng nhận kết nối từ client


Triển khai OpenVPN D3f2bf03106b2f4732e905ca78552f63_52326438.image052
Hình 5.27: Dùng lệnh ipconfig /all để biết địa chỉ IP (ảo) được cấp

Lúc này server đang sẵn sàng nhận kết nối OpenVPN từ client.
Xem lại file log để biết trạng thái kết nối.
Triển khai OpenVPN 75511bf64ffcd4033c23b2330ea2dfdf_52326443.image053
Hình 5.28: Ghi nhận trạng thái kết nối trong log file (Windows)

Dòng Initialization sequence completed cho biết kết nối thành công.
Triển khai OpenVPN 408f2086b013aa982973807c00523ef0_52326446.image054
Hình 5.29: màn hình của 2k3 khi hoàn thành xong quá trình cài đặt và config
5.5.2. Khởi tạo OpenVPN client (Windows 7)
· Thực hiện tương tự mục 5.5.1 (Khởi tạo OpenVPN server (Windowsserver 2003))
· Nếu kết nối thành công, biểu tượng OpenVPN xuất hiện mày xanh lá.


Triển khai OpenVPN 594dc70f085904737d6765cc2c2a16d8_52326448.image055
Hình 5.30: OpenVPN client đã sẵn sàng nhận kết nối từ server

· Xem lại file log
Triển khai OpenVPN 962b2f7ac0b5776364946e94ee54c06b_52326450.image056
Hình 5.31: Ghi nhận trạng thái kết nối trong log file (Windows)



· Dùng lệnh ipconfig /all để biết địa chỉ IP (ảo) được cấp.
Triển khai OpenVPN D716b1b759240eb07f5f6d64031816e6_52327254.image057
Hình 5.32: Dùng lệnh ipconfig /all để biết địa chỉ IP (ảo) được cấp.
      
DuyHung
DuyHung Xuất sắc

Cấp bậc: Xuất sắc

Giới tính : Nam

Bài viết : 1246

Danh vọng : 2256

Uy tín : 32

Lỗ hổng nghiêm trọng RCE trong OpenVPN
Một nhà nghiên cứu đã phát hiện 4 lỗ hổng bảo mật, bao gồm một lỗ hổng thực thi mã từ xa nghiêm trọng trong OpenVPN. 
OpenVPN là một trong những phần mềm mã nguồn mở được sử dụng phổ biến nhất dành cho kết nối ẩn danh và riêng tư trên Internet. Trong năm nay đã có 2 đợt kiểm tra bảo mật độc lập dành cho OpenVPN nhưng không hề phát hiện ra những lỗi nghiêm trọng. 3 lỗ hổng được tìm thấy trong server-side, 2 trong số đó có thể gây ra treo máy chủ. 1 lỗ hổng còn lại nằm trong client-side cho phép tin tặc đánh cắp mật khẩu truy cập vào proxy.
Lỗ hổng nghiêm trọng nhất có định danh CVE-2017-7521 nằm trong hàm xử lý chứng chỉ SSL. Lỗ hổng cho phép tin tặc thực hiện gửi một chứng chỉ giả mạo khiến dịch vụ OpenVPN bị treo.
Lỗ hổng thứ hai CVE-2017-7520 nằm trong OpenVPN kết nối tới Windows NTLM v2. Tin tặc đứng giữa OpenVPN và proxy server có thể bị treo hoặc rò rỉ dữ liệu bộ nhớ.
Hai lỗ hổng (CVE-2017-7508 và CVE-2017-7522) khiến máy chủ bị treo từ xa bằng cách gửi một gói tin IPv6 độc hại hoặc dữ liệu xác thực giả mạo.

CẬP NHẬT OPENVPN PHIÊN BẢN MỚI NHẤT

Tại thời điểm công bố chi tiết về các lỗ hổng, đội ngũ bảo mật của OpenVPN đã vá lỗ hổng trong phiên bản mới nhất. Người dùng được khuyến cáo cập nhật OpenVPN phiên bản 2.4.3 hoặc 2.3.17 càng sớm càng tốt.
Chi tiết kĩ thuật về lỗ hổng được đăng tải tại đây.
THN
      
Sponsored content

#7code Re: Triển khai OpenVPN

      

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Quyền hạn của bạn

Bạn không có quyền trả lời bài viết
free counters



  • Đoàn Ngọc Khánh

    mobile phone 098 376 5575


    Đỗ Quang Thảo

    mobile phone 090 301 9666


    Nguyễn Văn Của

    mobile phone 090 372 1401


    IP address signature
    Free forum | ©phpBB | Free forum support | Liên hệ | Báo cáo lạm dụng | Thảo luận mới nhất