THIẾT KẾ VÀ TRIỂN KHAI VPN CLIENT TO SITE
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
ĐỒ ÁN BẢO MẬT THÔNG TIN
OPENVPN
Ngành: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: CÔNG NGHỆ PHẦN MỀM
Giảng viên hướng dẫn : ThS Dương Minh Chiến
Sinh viên thực hiện:Võ Quốc Đạt MSSV: 1811063506
Nguyễn Văn Tấn MSSV: 1811062282 Nguyễn Thanh Chí Thông MSSV: 1811063557
Lớp: 18DTHD6
TP Hồ Chí Minh, năm 2021
Trang 2LỜI CÁM ƠN
Em xin chân thành gửi lời cám ơn đến quý thầy cô trường Đại học Công NghệThành Phố Hồ Chí Minh nói chung và các Thầy,Cô bộ môn trong khoa công nghệthông tin nói riêng đã tạo điều kiện cho chúng em cơ hội thực hành, tiếp xúc đểchúng em có thể tránh được những vướng mắc và bỡ ngỡ trong môi trường công việcthời gian tới
Em xin chân thành cảm ơn THS Dương Minh Chiến Nhờ sự giúp đỡ tận tình
và những chỉ bảo của Thầy từ lúc bắt đầu cho tới lúc kết thúc đồ án mà em đã hoànthành đúng thời hạn quy định và tích lũy được cho mình một lượng nền tảng kiếnthức quý báu
Mặc dù đã cố gắng hoàn thành đề tài tốt nhất nhưng do thời gian và kiến thứccòn có hạn nên em sẽ không thể tránh khỏi những thiếu sót nhất định, rất mong nhậnđược sự cảm thông, chia sẻ và tận tình đóng góp chỉ bảo của quý thầy cô cũng nhưcác bạn
Tp.HCM, ngày 11 tháng 6 năm 2021
Trang 3MỤC LỤC
Chương 1: TỔNG QUAN 4
1.1 Tổng quan về đồ án 4
1.2 Nhiệm vụ đồ án 4
1.3 Cấu trúc đồ án 4
Chương 2: CƠ SỞ LÝ THUYẾT 5
2.1 Giới thiệu về giao thức OpenVPN 5
2.2 Các thành phần của OpenVPN 5
2.3 Lịch sử phát triển và các RFC liên quan 6
2.3.1 Lịch sử phát triển 6
2.3.2 RFC liên quan 7
2.4 Kiến trúc OpenVPN 7
2.5 Giải pháp bảo mật của giao thức OpenVPN 7
2.7 Ưu và nhược điểm của giao thức OpenVPN 10
Chương 3: KẾT QUẢ THỰC NGHIỆM 13
3.1 Mục tiêu của mô hình ứng dụng 13
3.2 Mô hình ứng dụng 13
3.3 Quá trình kết nối VPN thành công 13
3.4 Các bước triển khai 14
Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 26
4.1 Kết luận 26
4.2 Hướng phát triển của đồ án 26
TÀI LIỆU THAM KHẢO 27
Trang 4Giúp người dùng sử dụng trong những mục đích sau:
- Đáp ứng nhu cầu truy cập dữ liệu và ứng dụng cho người dùng ở xa, bên ngoàithông tin thông qua Internet
- Áp dụng cho các tổ chức có nhiều văn phòng chi nhánh, giữa các văn phòng cầntrao đổi dữ liệu với nhau
- Trong một số tổ chức, quá trình truyền dữ liệu giữa một số bộ phận cần bảo đảmtính an toàn tốt nhất OpenVPN là lựa chọn duy nhất cho tiêu chí này
- Chương 3: K t qu th c nghi mế ả ự ệ
Phần này sẽ cho chúng ta thấy mô hình mục tiêu úng dụng, giới thiệu các công
cụ để thực hiện và phân tích các gói tin trong wireshark
- Chương 4: K t lu n và hế ậ ướng phát tri n c a đ ánể ủ ồ
Phần này sẽ rút ra những lưu ý và lời khuyên khi sử dụng giao thức OpenVPN
và đưa ra hướng phát triển để giao thức hoàn thiện hơn
Trang 6Chương 2: CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về giao thức OpenVPN
OpenVPN là một giao thức mã hóa mạng riêng ảo (VPN) mã nguồn mở Nóđược công nhận trên toàn ngành là giao thức mã hóa mạng riêng ảo (VPN) bảo mậtnhất
OpenVPN có khả năng tùy biến cao và có thể được triển khai theo nhiều cáchkhác nhau Mã hóa OpenVPN bao gồm một kênh dữ liệu và một kênh điều khiển.Kênh điều khiển ở đó để xử lý việc trao đổi key, trong khi kênh dữ liệu mã hóa lưulượng truy cập web của người dùng VPN
OpenVPN cho phép các bên xác thực lẫn nhau bằng cách sử dụng khóa bí mậtchia sẻ trước, chứng thư khoá công khai (public key certificate) hoặc tên ngườidùng/mật khẩu Khi được sử dụng trong cấu hình multiclient-server, nó cho phép máychủ phát hành một chứng thư xác thực cho mỗi client Nó sử dụng thư viện mãhoá OpenSSL cũng như giao thức TLS một cách rộng rãi, và chứa nhiều tính năngkiểm soát và bảo mật
2.2 Các thành phần của OpenVPN
Mặc dù là giao thức mã hóa bảo mật nhất, nhưng OpenVPN vẫn dựa vào một sốyếu tố quan trọng nhất định, và trừ khi VPN nhận được mọi thành phần quan trọng củagiao thức, nếu không, tính bảo mật của toàn bộ giao thức mã hóa sẽ bị ảnh hưởng Cácthành phần này như sau:
– Mật mã – Mật mã là thuật toán mà VPN sử dụng để mã hóa dữ liệu Khả năng
mã hóa chỉ mạnh bằng mật mã mà giao thức VPN sử dụng Các mật mã phổ biến nhất
mà các nhà cung cấp VPN sử dụng là AES và Blowfish
– Các kênh mã hóa – OpenVPN sử dụng hai kênh là kênh dữ liệu và kênh điềukhiển Các thành phần cho mỗi kênh như sau:
+ Kênh dữ liệu = Mật mã + Xác thực hash
Trang 7+ Kênh điều khiển = Mật mã + Mã hóa handshake TLS + xác thực hash + việcPerfect Forward Secrecy có được sử dụng hay không (và được dùng như thế nào).
– Mã hóa handshake – Điều này được sử dụng để bảo mật trao đổi key TLS.RSA thường được sử dụng, nhưng DHE hoặc ECDH có thể được dùng thay thế vàcũng cung cấp PFS
– Xác thực hash – Điều này sử dụng một hàm hash mật mã để xác minh rằng dữliệu không bị giả mạo Trong OpenVPN, nó thường được thực hiện bằng HMAC SHA,nhưng nếu mật mã AES-GCM đang được sử dụng (thay vì AES-CBC) thì GCM có thểcung cấp xác thực hash thay thế
– Perfect Forward Secrecy – PFS là một hệ thống trong đó một key mã hóariêng tư duy nhất được tạo cho mỗi phiên Có nghĩa là mỗi phiên Transport LayerSecurity (TLS) có một bộ key riêng Chúng chỉ được sử dụng một lần và sau đó biếnmất
Những cài đặt tối thiểu được đề xuất cho các kết nối OpenVPN là:
– Kênh dữ liệu: Mật mã AES-128-CBC với HMAC SHA1 có xác thực Nếu sửdụng mật mã AES-GCM thì không cần xác thực bổ sung
– Kênh điều khiển: Mật mã AES-128-CBC với mã hóa handshake RSA-2048hoặc ECDH-385 và xác thực hash HMAC SHA1 Bất kỳ quá trình trao đổi key DHEhoặc ECDH nào cũng có thể cung cấp Perfect Forward Secrecy
2.3 Lịch sử phát triển và các RFC liên quan
2.3.1 Lịch sử phát triển
Năm 2003, James Yonan đã kể lại trong thời gian ông ta đi du lịch ở CentralAsia 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ấpdị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 JamesYonan 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
Trang 8lậ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ởivậy Jame Yonan đã tiếp cận giải pháp dùng thiết bị card mạng ảo TUN/TAP có trongnhâ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ậptứ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ậttrê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ôntrọ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ụngthiế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ànhchung một network
2.5 Giải pháp bảo mật của giao thức OpenVPN
2.5.1 Tích hợp PKI
Hiện nay nhiều mạng riêng ảo (VPN) đang thể hiện sự hạn chế bởi chính hệthống bảo mật quá đơn giản Vấn đề đặt ra để có thể đáp ứng yêu cầu phát triển mộtmạng riêng ảo lớn và có tính bảo mật cao Đa số các mạng riêng ảo ngày nay đangđƣợc khai thác không sử dụng sự hỗ trợ của cơ sở hạ tầng mã khoá công khai (PKI).Một cách đơn giản nhất, điều đó có thể thực hiện đƣợc thông qua việc thiết đặt cầuhình tại cả hai đầu của đường ngầm VPN cùng chia sẻ một bí mật chung - một cặp mậtkhẩu
Hai đầu cuối VPN có thể nhận thực nhau thông qua giấy chứng nhận điện tử Một loại "thẻ hội viên điện tử" không thể thiếu trong các mạng VPN lớn Đối với giấychứng nhận điện tử, tổ chức này được gọi là hệ thống cung cấp chứng nhận (CA-
Trang 9-Certification Authority) Các mạng VPN sử dụng chứng nhận điện tử khi đường ngầm
IP khởi tạo, các điểm kết cuối sẽ nhận thực lẫn nhau thông qua chứng nhận điện tử Cơ
sở hạ tầng mã khoá công khai sẽ đóng vai trò quan trọng trong việc xây dựng thànhcông các mạng VPN lớn
2.5.2 Sử dụng xác thực 2 thành tố
eToken là một thiết bị nhận dạng số, được tích hợp những giải pháp phần mềmbảo mật chuyên dụng, theo đúng chuẩn quốc tế và kết nối với máy tính thông qua cổnggiao tiếp USB eToken cho phép cả người dùng lẫn người quản trị / bảo mật quản lýhiệu quả quá trình chứng thực người dùng hệ thống bằng cách lưu trữ và phát sinh mậtkhẩu, chứng chỉ số và mã hóa tất cả thông tin đăng nhập (cả khóa chung và khóariêng) eToken cung cấp nền tảng bảo mật an toàn, hiệu quả, dễ sử dụng và triển khaitrên diện rộng Giải pháp sử dụng thiết bị epass3003, epass2000, các thiết bị nàytương thích với các môi trường linux, windows
2.5.3 Tích hợp tường lửa
Tường lửa (firewall) là rào chắn vững chắc giữa mạng riêng và Internet Chúng
ta 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 Giải pháp đưa ra tích hợp phần mềm tường lửa mã nguồn mởshorewall trên các gateway Tường lửa sẽ phân hoạch các vùng chính sách và thiết lậpchính sách truy cập đối với việc truy cập từ xa vào hệ thống Shorewall là một giảipháp tương thích với giao diện tun ảo của Openvpn Gải pháp này đảm bảo kiểm soát,thiết lập chính sách cho vùng địa chỉ VPN
2.6 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
Trang 10+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ạitrừ các thiết bị mà Unix được nhún và và chạy ứng dụngnhư 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
+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
kỹ thuật IPsec +SSL/TLS như lớp mã hoá chuẩn công nghệ
+Định hướng lưu lượng
Trang 11+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
2.7 Ưu và nhược điểm của giao thức OpenVPN
2.7.1 Ưu điểm
2.7.1.1 Bảo mật cấp cao
Mã hóa dữ liệu là một trong những khía cạnh quan trọng nhất đối với cả ngườidùng cá nhân và các tập đoàn lớn Và các tập đoàn khổng lồ cũng không phải là đỉnhcủa các ngọn núi - có rất nhiều cơ quan chính phủ rất coi trọng vấn đề bảo mật thôngtin Và các cơ quan chính phủ hàng đầu trên thế giới (như FBI và CIA) sử dụng mãhóa dữ liệu 256-bit Để đặt mọi thứ theo quan điểm, loại mã hóa dữ liệu này vẫn chưa
bị xâm phạm Hơn nữa, rất khó có khả năng nó sẽ bị phá vỡ bất cứ lúc nào trong thờigian sớm Tại sao? Nếu mỗi người trên thế giới có 10 máy tính (sẽ có khoảng750.000.000.000 máy tính), tất cả đang cố gắng hack mã hóa 256-bit, họ sẽ phải mất
hơn 7.000.000.000.000.000.000.000.000 năm để giải mã chữ số đầu tiên! Vâng, đó là
một con số thực tế, và nó hoàn toàn điên rồ! Với điều này, giờ đây bạn có thể hiểu tạisao bảo mật là điều đầu tiên mà chúng tôi nói đến trong bài đánh giá OpenVPN này Vìvậy nếu bạn bị làm phiền với câu hỏi "OpenVPN có an toàn không?", không cần quá
lo - nó an toàn như chính nó vậy
2.7.1.2 Làm việc trên hầu hết các thiết bị
OpenVPN được hỗ trợ trên hầu hết tất cả các nền tảng ngoài kia Rõ ràng, bạn
sẽ có thể chạy nó trên tất cả các hệ điều hành chính (như Android, Mac, Windows,v.v ), và giao thức cũng có sẵn trên phần lớn các nền tảng ít được biết đến Vì vậy, tựuchung lại, bạn phải luôn chú ý xem liệu VPN bạn chọn có hỗ trợ OpenVPN hay không.Một số đánh giá OpenVPN đề cập đến vấn đề này, và bạn nên cảm thấy yên tâm vềnhững VPN hàng đầu trong ngành - tuy nhiên, nếu bạn nhìn vào một số nhà cung cấpVPN ít được biết đến hơn, mọi thứ không phải lúc nào cũng suôn sẻ như thế
Trang 122.7.1.3 Nguồn mở
Đây là một khía cạnh quan trọng như vậy chủ yếu là có sự hỗ trợ của cộng đồng
mà giao thức đó có được Điều đó nói rằng, điều quan trọng cần nhấn mạnh là nhữngngười đang tìm kiếm chi phí OpenVPN có thể nhận thấy rằng có hai phiên bản lớn củaphần mềm - một phiên bản miễn phí, nguồn mở và một phiên bản khác dành cho mụcđích thương mại Dù có thể, cốt lõi của OpenVPN vẫn hoàn toàn là nguồn mở Đây làmột thứ gì đó rất quan trọng đối với bất kỳ ai vẫn thắc mắc là OpenVPN có an toànkhông
2.7.2 Nhược điểm
2.7.2.1 Sự can thiệp của bên thứ
Một điều được biết đến trong cộng đồng VPN là nó coi thường bất kỳ và tất cảcác mối đe dọa bảo mật, ngay cả khi chúng không xuất hiện như mối đe dọa ngay nhưban đầu Tuy nhiên, trớ trêu thay, phần mềm mà cần có mức bảo mật tối đa lại có sựcan thiệp của bên thứ ba Theo truyền thống, OpenVPN không phải là một phần của hệđiều hành Điều này có nghĩa là, để cài đặt và chạy phần mềm, bạn sẽ cần phải tậndụng một ứng dụng khách được thiết kế riêng Trong khi bản thân nó không phải làvấn đề quá lớn (có nghĩa là không có hồ sơ nào cho thấy ghi chép nhật ký dữ liệu hoặcbất kỳ rò rỉ nào được biết đến), mọi người vẫn không thích ý tưởng này Nhưng tại saovậy?Lý do chính, tất nhiên, là mối quan ngại bảo mật Bất kỳ bên thứ ba nào (cho dù
đó là khách hàng, chương trình mờ ám hoặc bất kỳ điều gì khác tương tự) thường đượcxem là mối đe dọa lớn đối với sự an toàn của thông tin của bạn Một người có thểkhông bao giờ biết chương trình nào ghi chép nhật ký dữ liệu của bạn (một vi phạmcực kỳ nghiêm trọng nổi bật trong ngành công nghiệp VPN) hoặc tạo ra các rò rỉ, viphạm khác, v.v Một lần nữa, trong khi đây không phải là (trong ngoặc kép hoặckhông) vấn đề "thực sự" (nó không thực sự gây ra bất kỳ vấn đề đáng chú ý nào hoặcvẫy cờ đỏ nào), đó vẫn là điều cần lưu ý khi quyết định OpenVPN có an toàn không
2.7.2.1 Khó thiết lập
Có lẽ "nhược điểm" được coi là thật nhất trong tất cả - đó là việc thiết lậpOpenVPN Nếu bạn đang cố gắng cấu hình VPN của riêng mình và bạn muốn sử dụnggiao thức OpenVPN với nó, bạn sẽ phải thực hiện cài đặt thủ công Những người thực
Trang 13sự đã làm điều này có thể xác nhận - điều này là khó thực hiện Trong hầu hết các bànluận "OpenVPN có tốt không?", điều này được nhấn mạnh thêm bởi thực tế là rấtnhiều người cố gắng thiết lập giao thức theo cách thủ công thường không có nhiềukinh nghiệm trong lĩnh vực CNTT và Khoa học máy tính.Mặc dù cách sử dụngOpenVPN và thiết lập thủ công có thể thực sự khó khăn, nhưng thực sự có một cách
dễ dàng để làm Như tôi đã đề cập trước đó trong đánh giá OpenVPN này, bạn sẽ chỉthực hiện cấu hình thủ công nếu bạn muốn thử và tạo VPN của riêng mình Điều này
có thể dễ dàng tránh được - bạn đã đoán đúng rồi đấy - đó là mua VPN đã cài sẵn phầnmềm này Mặc dù điều này có thể không hiệu quả với tất cả mọi người, nhưng nó thực
sự là cách đơn giản nhất mà bạn có thể làm để bỏ qua quá trình tẻ nhạt cách sử dụngOpenVPN trước tiên là phải làm mọi thứ bằng tay Nếu bạn vẫn muốn tạo một VPNcủa riêng bạn, có những cách sử dụng Open VPN trực tuyến sẽ giúp bạn thiết lậpOpenVPN Tuy nhiên, nếu bạn đang đọc đánh giá OpenVPN này với mục đích muaVPN có giao thức này, hãy nhìn xem các VPN hàng đầu trong cuộc chơi - chúngkhông chỉ hỗ trợ OpenVPN, mà bạn sẽ còn nhận được rất nhiều tính năng bảo mật và
mã hóa dữ liệu bổ sung khác
Chương 3: KẾT QUẢ THỰC NGHIỆM
3.1 Mục tiêu của mô hình ứng dụng
Trang 14Mô hình úng dụng giúp chúng ta thấy được tổng quan quá trình làm việc của giao thức OpenVPN.
Tạo ra một đường hầm để đáp ứng nhu cầu truy cập, trao đổi dữ liệu của người dùng ở xa nhau hay các chi nhánh trong một công ty thông qua mạng riêng ảo VPN, đảm bảo tính riêng tư
3.2 Mô hình ứng dụng
Hình 3.2.1 Mô hình triển khai của OpenVPN
3.3 Chuẩn bị
-Máy Windows 7 (Máy ảo,đóng vai trò làm máy client)
-Máy Windows 10 (Máy thật,cấu hình pfsense)
-Phần mềm Pfsense (đuôi iso)
3.4 Các bước triển khai
-Cấu hình Pfsense như ảnh