Tài liệu Luận văn tìm hiểu và cài đặt openvpn

  • Số trang: 52 |
  • Loại file: PDF |
  • Lượt xem: 2995 |
  • Lượt tải: 39
minhminh

Tham gia: 22/06/2014

Mô tả:

Luận văn tốt nghiệp CĐ Tìm hiểu và cài đặt OpenVPN của trường CĐ CNTT TP.HCM

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 -