GIỚI THIỆU ĐỀ TÀI
Giới thiệu chung
Hiện nay, sự phổ biến và hiện đại của Internet đã làm cho việc bảo vệ thông tin cá nhân trở nên cần thiết, không chỉ đối với cá nhân mà còn với doanh nghiệp Mỗi năm, nhiều doanh nghiệp gặp phải tình trạng mất thông tin, với nhiều vụ việc lớn được đưa tin trên báo chí Do đó, bảo mật thông tin cho doanh nghiệp trở thành một nhiệm vụ cấp thiết và quan trọng hàng đầu Để đáp ứng nhu cầu này, mô hình mạng riêng ảo (Virtual Private Network - VPN) đã được phát triển, cho phép tận dụng cơ sở hạ tầng hiện có của Internet Đây cũng chính là lý do nhóm chúng tôi chọn đề tài này.
Cấu hình VPN trên Windows Server hiện nay chiếm ưu thế nhưng có chi phí cao, trong khi sự phát triển của công nghệ hacking đã đặt ra thách thức lớn cho tính bảo mật dữ liệu Để tiết kiệm chi phí và nâng cao bảo mật, cấu hình VPN trên hệ điều hành Linux, đặc biệt là CentOS, đã ra đời CentOS, phát triển từ RHEL, là một hệ điều hành mã nguồn mở miễn phí, tương thích tốt với phần mềm Red Hat Hệ điều hành Linux, với tính linh hoạt và khả năng cấu hình qua command line, thường mang lại hiệu suất nhanh và ổn định hơn so với Windows, khiến CentOS trở thành lựa chọn phổ biến cho máy chủ Nhờ vào tính tiện lợi và an toàn, VPN ngày càng được triển khai rộng rãi trong các doanh nghiệp, trường học và bệnh viện.
Mục tiêu của đề tài
Tổng hợp các kiến thức về VPN tới người đọc một cách đầy đủ nhất.
Triển khai VPN server hoàn chỉnh trên hệ điều hành Linux.
Xây dựng hệ thống VPN client – to – site để người dùng có thể kết nối từ xa vào mạng riêng ảo của công ty.
Xây dựng hệ thống VPN site – to – site có thể kết nối được các mạng LAN lại với nhau.
Xây dựng hệ thống VPN kết hợp IPSec có thể đảm bảo tính bảo mật cho hệ thống.
Tổng quát bài báo cáo tới người nghe và người đọc một cách dễ hiểu nhất.
Nhiệm vụ của đề tài
Tìm hiểu và nghiên cứu tất cả kiến thức có liên quan đến hệ điều hành Linux và VPN (Virtual Private Network).
Nghiên cứu và xây dựng hệ thống VPN client – to – site, site – to – site và IPSec trên hệ điều hành Linux theo đúng mục tiêu đề ra.
Hoàn thành bài báo cáo một dễ đọc dễ nhìn và chi tiết nhất.
Kết quả đạt được
Hệ thống VPN mang lại nhiều ưu điểm khi chuyển từ Windows sang hệ điều hành mã nguồn mở Việc sử dụng mã nguồn mở không chỉ giúp tăng cường tính bảo mật mà còn giảm chi phí vận hành Ngoài ra, nó cho phép người dùng tùy chỉnh và tối ưu hóa hệ thống theo nhu cầu riêng, từ đó xây dựng một mạng riêng ảo hiệu quả và linh hoạt hơn Những lợi ích này khẳng định giá trị của việc lựa chọn hệ điều hành mã nguồn mở trong việc thiết lập và quản lý mạng VPN.
Hệ thống mạng riêng ảo đã được xây dựng thành công trên hệ điều hành Linux, đáp ứng nhu cầu phát triển kỹ thuật và phù hợp với nền kinh tế tài chính Việt Nam hiện nay.
Bố cục đề tài
Báo cáo được chia thành 7 chương, với nội dung các chương như sau:
Chương 1 của bài viết giới thiệu về đề tài VPN, một chủ đề đang được quan tâm trong môi trường doanh nghiệp hiện nay Bài viết sẽ giải thích các mục tiêu và lý do lựa chọn nghiên cứu cũng như xây dựng hệ thống VPN trên hệ điều hành Linux.
Chương 2: Cơ sở lý thuyết về hệ thống VPN trên Linux Để xây dựng một hệ thống VPN hiệu quả, việc nắm vững kiến thức nền tảng là điều cần thiết Chương này sẽ trình bày các khái niệm cơ bản liên quan đến hệ điều hành Linux và VPN, cùng với các ứng dụng và lợi ích của chúng, nhằm hỗ trợ quá trình thiết lập hệ thống VPN trên nền tảng Linux.
Chương 3: Xây dựng VPN client – to – site
VPN client-to-site là dịch vụ mạng phổ biến được nhiều doanh nghiệp sử dụng hiện nay Hệ thống này được xây dựng dựa trên giao thức OpenVPN, một trong những giao thức thông dụng cho việc thiết lập VPN trên nền tảng CentOS OpenVPN nổi bật nhờ tính tiện lợi và khả năng cấu hình dễ dàng, đồng thời đáp ứng đầy đủ nhu cầu của một hệ thống VPN cần thiết.
Chương 4: Xây dựng VPN site-to-site là một bước quan trọng trong việc kết nối các mạng LAN, giúp mở rộng hệ thống VPN cho doanh nghiệp Nhóm đã áp dụng giao thức Strongswan để thiết lập hệ thống VPN site-to-site, mang lại sự dễ dàng trong cấu hình và đảm bảo tính an toàn cho hệ thống Đặc biệt, việc sử dụng IPSec trong cấu hình này là một lựa chọn tốt cho việc bảo mật VPN.
Chương 5: VPN với IPSec trên môi trường Linux
Một hệ thống VPN hoàn chỉnh cần có đầy đủ tính năng bảo mật và mã hóa để đảm bảo an toàn cho dữ liệu truyền đi Sự kết hợp L2TP/IPSec là lựa chọn tối ưu để xây dựng hệ thống VPN với các tính năng bảo mật toàn diện.
Chương này sẽ tổng kết các đánh giá về đề tài và quá trình xây dựng hệ thống VPN, đồng thời đề xuất hướng phát triển cho nghiên cứu trong tương lai.
CƠ SỞ LÝ THUYẾT
Khái quát hệ điều hành Linux
Hệ điều hành Linux, hay còn gọi là GNU/Linux, là một hệ điều hành tương tự Unix, được hình thành từ việc kết hợp nhân Linux với các thư viện và công cụ GNU, cũng như các bản phân phối khác nhau Linux bao gồm một loạt phần mềm đa dạng như máy chủ web, ngôn ngữ lập trình, hệ quản trị cơ sở dữ liệu và môi trường desktop Điểm nổi bật của Linux là tính chất mã nguồn mở, cho phép người dùng tự do truy cập, sửa đổi và phân phối mã nguồn của hệ điều hành này.
2.1.2 Các ưu điểm và nhược điểm của hệ điều hành Linux
Một số ưu điểm của việc sử dụng hệ điều hành Linux bao gồm:
Hệ điều hành mã nguồn mở Linux, được phát hành theo giấy phép phần mềm mã nguồn mở GNU GPL, cung cấp hàng trăm ứng dụng trong nhiều danh mục khác nhau Nhiều bản phân phối Linux cũng tích hợp phần mềm độc quyền như trình điều khiển thiết bị từ nhà sản xuất, nhằm hỗ trợ phần cứng, cho phép các nhà phát triển tự do sửa đổi và phân phối hệ điều hành theo nhu cầu của họ.
Linux là một hệ điều hành nổi bật về mặt bảo mật, với khả năng chống lại vi-rút và phần mềm độc hại tốt hơn so với các hệ điều hành khác Điều này không chỉ nhờ vào thiết kế bảo mật của nó mà còn do sự phổ biến thấp hơn, giúp giảm thiểu nguy cơ tấn công.
Linux nổi bật với tính ổn định và độ tin cậy cao, làm cho nó trở thành lựa chọn lý tưởng cho các máy chủ và ứng dụng quan trọng.
Linux nổi bật với khả năng tùy chỉnh cao, cho phép người dùng và tổ chức điều chỉnh hệ điều hành theo nhu cầu cụ thể của họ Sự tùy biến này không chỉ nâng cao hiệu quả làm việc mà còn gia tăng năng suất tổng thể.
Linux có khả năng tương thích cao với nhiều loại phần cứng, cho phép sử dụng trên các thiết bị đa dạng như điện thoại thông minh, máy tính bảng, máy tính để bàn và máy chủ Hệ điều hành Linux và các hệ điều hành mã nguồn mở thường xuyên được cập nhật với các bản vá bảo mật và tính năng mới, trong khi vẫn duy trì chức năng cốt lõi Điều này đảm bảo rằng cấu hình và tập lệnh shell vẫn hoạt động ổn định ngay cả khi có các bản cập nhật phần mềm.
Chi phí sử dụng Linux thường miễn phí, điều này làm cho nó trở thành lựa chọn hấp dẫn cho cả doanh nghiệp và cá nhân đang tìm kiếm giải pháp tiết kiệm chi phí.
Nhược điểm: Một số nhược điểm của việc sử dụng hệ điều hành Linux bao gồm:
Sử dụng VPN có thể làm giảm tốc độ internet do lưu lượng truy cập phải được mã hóa và định tuyến qua máy chủ VPN, dẫn đến trải nghiệm chậm hơn so với việc không sử dụng VPN.
Một số dịch vụ VPN có thể chỉ cung cấp số lượng vị trí máy chủ hạn chế, điều này có thể ảnh hưởng đến tốc độ và độ tin cậy của kết nối.
Khả năng rò rỉ DNS là một vấn đề cần lưu ý khi sử dụng VPN, vì trong một số trường hợp hiếm hoi, VPN có thể làm lộ các yêu cầu DNS của bạn Điều này có thể dẫn đến việc nhà cung cấp dịch vụ internet hoặc các bên thứ ba khác nắm bắt được hoạt động duyệt web của bạn.
Phần mềm độc quyền như Microsoft Office không tương thích với hệ điều hành Linux, khiến người dùng gặp khó khăn trong việc sử dụng các ứng dụng năng suất trên nền tảng này Do đó, nhiều phần mềm độc quyền khác cũng không có sẵn cho Linux, hạn chế sự lựa chọn của người dùng.
Tổng quan về VPN
VPN (Mạng riêng ảo) là công nghệ mạng giúp người dùng kết nối an toàn với mạng riêng qua Internet bằng cách mã hóa dữ liệu giữa thiết bị và máy chủ VPN Việc này bảo vệ thông tin nhạy cảm như thông tin đăng nhập, dữ liệu tài chính và bí mật kinh doanh VPN tạo ra một kết nối an toàn và được mã hóa thông qua các giao thức VPN, quy định cách thức mã hóa và truyền tải dữ liệu giữa người dùng và máy chủ VPN toàn cầu.
Mạng riêng ảo (VPN) là giải pháp kết nối an toàn giữa các máy tính của công ty, tổ chức qua Internet công cộng VPN không chỉ nâng cao bảo mật mà còn cải thiện khả năng quản lý mạng riêng Bên cạnh đó, nó cho phép người dùng truy cập vào các tài nguyên bị hạn chế trên mạng công cộng, đặc biệt hữu ích cho nhân viên làm việc từ xa.
VPN cung cấp quyền riêng tư và bảo mật trực tuyến bằng cách mã hóa lưu lượng truy cập internet, ngăn chặn việc theo dõi và chặn hoạt động trực tuyến của bạn Điều này trở nên quan trọng hơn khi sử dụng mạng Wi-Fi công cộng, nơi dễ bị tấn công Ngoài ra, VPN còn giúp bạn vượt qua các hạn chế và kiểm duyệt địa lý, cho phép truy cập vào các trang web hoặc dịch vụ bị chặn tại quốc gia của bạn bằng cách kết nối với máy chủ ở vị trí khác.
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 đầu tiên bao gồm:
VPN cung cấp bảo mật bằng cách mã hóa toàn bộ lưu lượng dữ liệu giữa thiết bị của bạn và máy chủ VPN, giúp ngăn chặn việc chặn hoặc đọc dữ liệu Điều này trở nên đặc biệt quan trọng khi bạn sử dụng mạng Wi-Fi công cộng, nơi dễ bị tấn công bởi tin tặc.
VPN giúp bảo vệ quyền riêng tư của bạn bằng cách ẩn địa chỉ IP và vị trí, làm cho các trang web và dịch vụ trực tuyến khó theo dõi hoạt động của bạn Điều này rất quan trọng để duy trì sự riêng tư và ẩn danh khi bạn lướt web.
VPN cho phép người dùng truy cập vào nội dung bị giới hạn địa lý, như các dịch vụ phát trực tuyến hoặc trang web chỉ có sẵn ở một số quốc gia.
VPN là công cụ hữu ích giúp người dùng vượt qua kiểm duyệt internet, cho phép truy cập vào các trang web và dịch vụ trực tuyến bị chặn ở những quốc gia có chính sách kiểm soát internet nghiêm ngặt.
VPN cho phép truy cập từ xa vào các tệp và tài nguyên trên mạng công ty, giúp nhân viên làm việc hiệu quả từ nhà hoặc khi đang di chuyển.
VPN có khả năng nâng cao hiệu suất kết nối internet của bạn bằng cách giảm độ trễ và tối ưu hóa tốc độ tải xuống cũng như tải lên.
Sử dụng VPN giúp tiết kiệm chi phí hiệu quả, với khả năng giảm chi phí truyền tải từ 20-40% so với các mạng leased-line Bên cạnh đó, VPN cũng có thể giảm chi phí truy cập từ xa lên tới 60-80%.
VPN mang lại nhiều lợi ích thiết thực cho cả cá nhân và doanh nghiệp, bao gồm việc nâng cao bảo mật thông tin, bảo vệ quyền riêng tư, cho phép truy cập nội dung bị hạn chế và hỗ trợ truy cập từ xa vào tài nguyên công ty.
VPN cung cấp các chức năng:
VPN (Mạng riêng ảo) cung cấp kết nối an toàn và được mã hóa giữa thiết bị của bạn và máy chủ từ xa, bảo vệ hoạt động trực tuyến khỏi sự theo dõi và giám sát của bên thứ ba Với khả năng tạo ra một "đường hầm" riêng tư, VPN giúp bạn duy trì quyền riêng tư và an toàn khi truy cập internet từ bất kỳ đâu trên thế giới.
VPN mã hóa toàn bộ lưu lượng dữ liệu giữa thiết bị của bạn và máy chủ từ xa, điều này khiến cho việc chặn hoặc đọc dữ liệu trở nên rất khó khăn đối với người khác.
Mặt nạ địa chỉ IP: VPN giúp ẩn địa chỉ IP và vị trí của bạn, làm cho các trang web và dịch vụ trực tuyến khó khăn hơn trong việc theo dõi hoạt động trực tuyến và nhận diện bạn.
VPN giúp bạn ẩn vị trí thực tế, cho phép bạn truy cập internet như thể bạn đang ở một nơi khác Điều này rất hữu ích để truy cập nội dung bị giới hạn theo địa lý và vượt qua các rào cản kiểm duyệt internet.
Tổng kết chương 2
VPN là dịch vụ mạng phổ biến, đặc biệt quan trọng cho doanh nghiệp, như đã nêu trong chương 2 Việc cấu hình VPN trên hệ điều hành nào là vấn đề đáng lưu ý; chương 1 đã chỉ ra rằng Linux, với nhiều tính năng vượt trội và tính bảo mật cao hơn Windows, là lựa chọn tốt cho doanh nghiệp Do đó, cấu hình VPN trên hệ điều hành Linux là một quyết định hợp lý.
Trong chương 2, chúng ta đã tìm hiểu về các khái niệm, cách hoạt động và lý thuyết cơ bản của VPN cũng như hệ điều hành Linux Những kiến thức này sẽ là nền tảng để cấu hình một hệ thống VPN hoàn chỉnh trên Linux Tiếp theo, chương 3 sẽ trình bày chi tiết về việc xây dựng VPN Client-to-Site trên hệ điều hành Linux.
XÂY DỰNG VPN CLIENT - TO - SITE
Tổng quan VPN client - to - site (Remote Access VPN)
VPN client to site là loại VPN cho phép người dùng kết nối đến một mạng riêng từ xa thông qua một máy chủ VPN Để sử dụng VPN client to site, người dùng cần cài đặt phần mềm VPN client trên máy tính của mình để kết nối với máy chủ VPN Một ví dụ phổ biến của loại VPN này là OpenVPN.
Người dùng khởi động ứng dụng VPN trên máy tính cá nhân và xác thực bằng tên người dùng và mật khẩu với máy chủ VPN Sau đó, một kết nối VPN được mã hóa được thiết lập từ máy tính cá nhân đến mạng riêng ở xa Dữ liệu từ máy tính của người dùng sẽ được truyền qua kết nối an toàn và bảo mật đến mạng từ xa.
Hình 3.1 VPN client to site
Một số thành phần chính
Remote Access Server (RAS): được đặt tại trung tâm có nhiệm vụ xác nhận và chứng nhận các yêu cầu gửi tới.
Quay số kết nối đến trung tâm, điều này sẽ làm giảm chi phí cho một số yêu cầu ở khá xa so với trung tâm.
Hỗ trợ cho những người có nhiệm vụ cấu hình, bảo trì và quản lý RAS và hỗ trợ truy cập từ xa bởi người dùng.
Việc triển khai Remote Access VPN cho phép người dùng từ xa hoặc các chi nhánh văn phòng dễ dàng kết nối đến nhà cung cấp dịch vụ ISP hoặc điểm truy cập ISP (POP) để truy cập tài nguyên qua Internet Thông tin về cách thiết lập Remote Access được minh họa trong hình vẽ kèm theo.
Hình 3.2 Thiết lập một VPN remote access
Ứng dụng
VPN client – to - site thường được sử dụng cho các mục đích:
Giúp người dùng truy cập vào các mạng riêng ở xa, ví dụ như truy cập vào các máy chủ chỉ có mạng LAN trong Datacenter
Truy cập Internet an toàn và bảo mật hơn thông qua việc kết nối qua VPN.
Giấu địa chỉ IP Public thật của máy tính cá nhân trên Internet.
Một trong những ứng dụng cung cấp VPN client – to - site phổ biến nhất hiện nay đó là OpenVPN.
Ưu điểm và nhược điểm của hệ thống
Với VPN client-to-site, nhân viên có thể truy cập mạng riêng của công ty từ bất kỳ vị trí nào một cách an toàn
Truy cập từ xa vào các tài nguyên quan trọng của công ty như tệp, cơ sở dữ liệu và ứng dụng khác, giúp nâng cao hiệu quả làm việc và tạo điều kiện thuận lợi cho nhân viên.
VPN client-to-site hỗ trợ doanh nghiệp tuân thủ các quy định quan trọng như HIPAA, PCI và GDPR Việc sử dụng VPN giúp bảo vệ dữ liệu nhạy cảm trong quá trình truyền, đảm bảo an toàn thông tin cho tổ chức.
Cải thiện bảo mật mạng cho doanh nghiệp bằng cách mã hóa tất cả các dữ liệu truyền giữa thiết bị người dùng và mạng riêng của công ty.
VPN client-to-site cho phép bộ phận CNTT giám sát từ xa hoạt động của nhân viên trên mạng của công ty
VPN client-to-site có thể tiêu tốn một lượng băng thông đáng kể, điều này có thể làm chậm hiệu suất mạng
Để nâng cao quản lý công nghệ thông tin (CNTT), việc sử dụng VPN client-to-site đòi hỏi một quy trình quản lý và bảo trì bổ sung Điều này bao gồm các yếu tố quan trọng như xác thực người dùng, kiểm soát truy cập và khả năng khắc phục sự cố hiệu quả.
Khả năng mất dữ liệu là rất cao, thêm nữa là các phân đoạn của gói dữ liệu có thể đi ra ngoài và bị thất thoát.
Việc truyền dữ liệu qua Internet dẫn đến tốc độ chậm khi trao đổi các tệp lớn như video, âm thanh và các gói dữ liệu truyền thông.
Giao thức OpenVPN
OpenVPN là một giải pháp mạng riêng ảo (VPN) cho phép tạo kết nối an toàn giữa các điểm trong các cấu hình mạng khác nhau Hệ thống này hỗ trợ cả chế độ định tuyến và bắc cầu, đồng thời cung cấp khả năng truy cập từ xa OpenVPN bao gồm cả ứng dụng máy khách và máy chủ, mang lại sự linh hoạt và bảo mật cho người dùng.
OpenVPN cho phép xác thực đồng nghiệp thông qua các phương thức như khóa bí mật chia sẻ, chứng chỉ, hoặc tên người dùng và mật khẩu Trong cấu hình máy chủ với nhiều máy khách, OpenVPN có khả năng phát hành chứng chỉ xác thực cho từng máy khách, sử dụng chữ ký số và cơ quan cấp chứng chỉ.
Nó tích hợp thư viện mã hóa OpenSSL và giao thức TLS, mang đến nhiều tính năng bảo mật và kiểm soát Hệ thống sử dụng giao thức bảo mật tùy chỉnh dựa trên SSL/TLS để thực hiện trao đổi khóa Ngoài ra, nó còn có khả năng vượt qua các trình dịch địa chỉ mạng (NAT) và tường lửa.
OpenVPN đã được tích hợp vào nhiều hệ thống khác nhau, bao gồm DD-WRT, nơi nó hoạt động như một máy chủ OpenVPN Ngoài ra, SoftEther VPN, một máy chủ VPN hỗ trợ nhiều giao thức, cũng triển khai giao thức OpenVPN.
Hình 3.3 Cách thức hoạt động
OpenVPN hoạt động dựa trên kiến trúc máy khách - máy chủ, trong đó phần mềm máy chủ OpenVPN cần được cài đặt trên máy chủ mà người dùng muốn truy cập từ xa Đồng thời, máy khách OpenVPN phải được cài đặt trên tất cả các thiết bị của người làm việc từ xa để kết nối với máy chủ này.
Có hai giao thức chính để thiết lập và quản lý các kết nối VPN với giao thức an toàn:
PPTP, hay Giao thức đường hầm điểm tới điểm, là một trong những giao thức VPN dễ sử dụng và phổ biến nhất hiện nay Tất cả các hệ điều hành hiện đại đều tích hợp sẵn ứng dụng khách PPTP, tuy nhiên, việc thiết lập máy chủ vẫn cần được thực hiện riêng biệt.
L2TP, hay Giao thức đường hầm lớp 2, hoạt động tương tự như PPTP khi sử dụng kênh điều khiển qua UDP và đường hầm GRE cho kênh dữ liệu Tuy nhiên, L2TP không cung cấp mã hóa hay bảo mật tự động, mà phụ thuộc vào các giao thức lớp trên như IPSec để đảm bảo an toàn cho dữ liệu truyền qua đường hầm L2TP.
OpenVPN là một giải pháp VPN dựa trên SSL/TLS, cho phép kết nối máy khách và máy chủ qua cổng TCP 443 Khi kết hợp với HTTPS, OpenVPN trở thành công cụ hiệu quả để vượt qua các hạn chế nội dung và tường lửa, đồng thời duy trì tính năng mã hóa và xác thực mạnh mẽ Điều này khiến OpenVPN trở nên phổ biến đối với cả người dùng doanh nghiệp và người dùng gia đình.
OpenVPN không chỉ đơn thuần là phần mềm VPN thay thế cho Cisco VPN hay Fortinet VPN, mà còn cung cấp các giao thức SSL/TLS VPN linh hoạt Điều này giúp người dùng dễ dàng vượt qua hầu hết các hạn chế về tường lửa và nội dung.
Lab cấu hình VPN client-to-site
3.6.1 Cấu hình VPN client-to-site
Hình 3.4 Mô hình VPN client – to - site Để cấu hình VPN client-to-site, đầu tiên cập nhật lại hệ thống bằng lệnh. yum -y update
To set up OpenVPN, the first step is to install the Net-tools package, which includes the necessary ifcfg files for creating an OpenVPN server You can install Net-tools on CentOS by using the command: `sudo yum install net-tools`.
Tải OpenVPN client từ trang chủ OpenVPN và dùng curl command để triển khai. curl-Ohttp://swupdate.openvpn.org/as/openvpn-as-2.7.3
Tiếp theo, cài đặt VPN server trên CentOS sử dụng lệnh: sudo rpm install openvpn-as-*.rpm
Sau khi hoàn tất quá trình cài đặt, chúng ta sẽ thấy thông tin về Admin UI và Client UI Mặc định, người dùng OpenVPN sẽ được tạo sẵn trong quá trình cài đặt Bạn có thể đặt mật khẩu cho người dùng này bằng lệnh passwd: passwd openvpn.
Đặt mật khẩu mới cho người dùng OpenVPN và sử dụng URL quản trị để đăng nhập hoàn tất quá trình cài đặt Đường dẫn truy cập trang quản trị là: https://192.168.44.137:943/admin Chỉ cần thay thế địa chỉ IP của VPS bạn vào URL cùng với cổng :943 và /admin.
Giao diện sẽ xuất hiện như sau:
Để đăng nhập vào giao diện admin, sử dụng tên người dùng "OpenVPN" và mật khẩu đã thiết lập trước đó Sau khi đăng nhập, người dùng sẽ thấy trang điều khoản và điều kiện, cần nhấn nút "Agree" để tiếp tục Trang kế tiếp sẽ hiển thị thông tin cấu hình và tình trạng của server.
Bất kỳ hệ điều hành nào như MacOS, Linux, Windows, Android và iOS đều có thể kết nối tới máy chủ VPN Để kích hoạt các thay đổi thiết lập, người dùng chỉ cần nhấn nút Apply và Update Running Server.
Xong phần cài đặt, tiếp theo ta sẽ tạo đường hầm OpenVPN.
3.6.2 Đăng nhập Để đăng nhập, đầu tiên ta mở OpenVPN client URL trên trình duyệt dưới dạng https://dia-chi-ip-server:943, sau đó ta sẽ thấy link tải về cho từng hệ điều hành và chọn phiên bản Windows và nhấn cài đặt.
Sau khi cài đặt thành công, ta sẽ được nhập OpenVPN username và password Server IP sẽ được tự động điền.
Ngoài ra, có thể dùng OpenVPN từ cửa sổ Windows taskbar để ngắt kết nối, kết nối lại và xem tình trạng kết nối.
Hình 3.6 Kết nối VPN client to site thành công
Hình 3.7 Giao diện quản trị client to site
Tổng kết chương 3
OpenVPN là phần mềm mã nguồn mở hỗ trợ kết nối điểm - điểm an toàn qua các cấu hình định tuyến hoặc bắc cầu, cùng với khả năng truy cập từ xa Phần mềm này sử dụng giao thức bảo mật tùy chỉnh dựa trên SSL/TLS để tạo ra các kết nối được mã hóa trên Internet.
Nhóm đã thành công trong việc cấu hình hệ thống VPN client-to-site, cho phép người dùng kết nối từ xa vào mạng công ty mà không cần có mặt tại văn phòng Tuy nhiên, kết nối này chỉ giới hạn trong một mạng LAN của công ty tại một chi nhánh Để mở rộng khả năng kết nối đến nhiều mạng LAN hơn, hãy tham khảo chương 4 về cấu hình VPN site-to-site.
XÂY DỰNG VPN SITE - TO – SITE TRÊN LINUX
Tổng quan về VPN site-to-site
Ngày nay, công nghệ VPN cho phép các doanh nghiệp kết nối an toàn giữa các chi nhánh mà không cần thuê Lease Line, nhưng việc cấu hình VPN trên router vẫn phức tạp và đòi hỏi kỹ năng chuyên môn Mặc dù nhiều công ty tại Việt Nam đã quen với việc sử dụng VPN trên hệ điều hành Windows, chi phí cho thiết bị và phần mềm không hề rẻ Do đó, việc áp dụng công nghệ mới với chi phí thấp được ủng hộ mạnh mẽ Hệ điều hành Linux ra đời để đáp ứng nhu cầu này, cho phép cấu hình VPN với tính bảo mật cao và chi phí đầu tư thấp nhờ vào phần mềm mã nguồn mở miễn phí Tuy nhiên, việc xây dựng VPN trên Linux vẫn còn mới mẻ đối với nhiều doanh nghiệp do tính phức tạp của dòng lệnh, dẫn đến sự phát triển hạn chế của VPN trên nền tảng này tại Việt Nam.
4.1.1 Khái niệm về VPN site-to-site
VPN site to site là một giải pháp kết nối an toàn giữa hai hoặc nhiều mạng riêng, cho phép các chi nhánh ở những vị trí khác nhau truy cập các ứng dụng và tài nguyên chung tại văn phòng chính Bằng cách sử dụng đường truyền bảo mật qua Internet, VPN site to site mở rộng mạng lưới doanh nghiệp hiệu quả Ví dụ, nếu bạn có một mạng riêng ở Hà Nội và một mạng khác ở Hồ Chí Minh, VPN site to site sẽ giúp kết nối chúng để trao đổi dữ liệu một cách an toàn.
4.1.2 Lợi ích của VPN site-to-site
Kết nối an toàn là yếu tố quan trọng trong việc bảo vệ dữ liệu kinh doanh, với tất cả lưu lượng truy cập qua VPN site-to-site được mã hóa Điều này đảm bảo rằng mọi thông tin trao đổi qua Internet công cộng đều được bảo vệ, ngăn chặn việc nghe trộm và sửa đổi dữ liệu.
VPN site-to-site cho phép các vị trí khác nhau trong doanh nghiệp dễ dàng chia sẻ tài nguyên như tệp, cơ sở dữ liệu và ứng dụng, từ đó nâng cao hiệu quả làm việc và kết nối giữa các phòng ban.
VPN site-to-site cung cấp quyền truy cập từ xa vào tài nguyên doanh nghiệp, bao gồm ứng dụng và dữ liệu, cho nhân viên làm việc bên ngoài văn phòng Điều này ngày càng quan trọng trong bối cảnh công việc từ xa trở nên phổ biến hơn hiện nay.
VPN site-to-site hỗ trợ doanh nghiệp trong việc tuân thủ các quy định về quyền riêng tư và bảo mật dữ liệu Bằng cách tạo ra một kênh liên lạc an toàn và được mã hóa giữa các trang web khác nhau, VPN giúp bảo vệ thông tin nhạy cảm và đảm bảo tính toàn vẹn của dữ liệu.
4.1.3 Hạn chế của VPN site-to-site
Khả năng mở rộng hạn chế của VPN dẫn đến việc cần một kết nối riêng cho mỗi trang web, làm tăng số lượng VPN cần thiết theo cấp số nhân Điều này cùng với việc định tuyến không hiệu quả đã khiến nhiều tổ chức áp dụng kiến trúc mạng "trung tâm và giao tiếp", trong đó mọi kết nối đều đi qua trụ sở để kiểm tra bảo mật Mặc dù phương pháp này giúp giảm số lượng đường hầm VPN, nhưng lại gây ra độ trễ mạng đáng kể và tăng tải cho mạng trụ sở.
Khả năng hiển thị mạng bị phân mảnh do mỗi kết nối VPN site-to-site hoạt động độc lập, gây khó khăn cho tổ chức trong việc duy trì cái nhìn tổng thể về lưu lượng mạng Điều này làm cho các cuộc tấn công phân tán trên mạng WAN trở nên khó phát hiện và ứng phó hiệu quả hơn.
Cấu hình và quản lý mạng WAN công ty dựa trên VPN trở nên phức tạp do tính độc lập của từng đường hầm VPN site-to-site Mỗi đường hầm VPN cần được thiết lập, giám sát và quản lý một cách riêng biệt.
VPN site-to-site chỉ cung cấp kết nối mã hóa giữa hai điểm mà không đảm bảo bảo mật tích hợp Điều này có nghĩa là VPN không thực hiện kiểm tra bảo mật nội dung hoặc kiểm soát truy cập, dẫn đến việc người dùng VPN có quyền truy cập không hạn chế vào mạng mục tiêu.
4.1.4 Ứng dụng của VPN site-to-site
VPN thường được dùng để kết nối các máy tính của một công ty hay tập đoàn với nhau Một VPN hiệu quả sẽ có các đặc điểm sau:
Khả năng mở rộng (Scalability).
Khả năng quản trị hệ thống mạng (Network Management).
Khả năng quản trị các chính sách (Policy Management).
Với việc sử dụng VPN, doanh nghiệp có thể giảm bớt các chi phí đầu tư cho cơ sở hạ tầng truyền thông và các chi phí hàng tháng:
Chi phí thuê bao Leased Line, Frame Relay, ATM đường dài.
Chi phí cước viễn thông đường dài dành cho các kết nối truy cập từ xa.
Trao đổi, chia sẻ dữ liệu an toàn, riêng tư, bảo mật giữa các văn phòng, chi nhánh công ty, tổ chức.
Phân quyền truy cập nhằm kiểm soát tính riêng tư trong quá trình truyền dữ liệu giữa các bộ phận nhất định.
Truy cập dữ liệu từ xa, giám sát văn phòng từ xa dễ dàng, hiệu quả.
Tiết kiệm chi phí đầu tư vào giải pháp đường truyền cũng như Remote Access VPN truyền thống.
Đơn giản cho việc quản lý Firewall và quản trị hệ thống cho System Administrator, …
Triển khai VPN không chỉ nâng cao bảo mật mà còn giúp doanh nghiệp tiết kiệm chi phí vận hành và bảo trì hệ thống, đồng thời giảm thiểu chi phí cho đội ngũ nhân viên.
Phổ biến hiện nay là VPN trên Linux:
Site - to - site: Kết nối các mạng Lan riêng lẻ lại với nhau.
Client - to - site: Kết nối một cá nhân vào mạng Lan.
Mạng cách ly phi chuẩn tạo ra một môi trường cách ly hoàn toàn về giao thức TCP/IP giữa mạng nội bộ và hệ thống Internet bên ngoài, đồng thời cho phép dữ liệu truyền giữa các mạng nội bộ qua Internet vẫn diễn ra bình thường.
Mô hình VPN site-to-site
Hình 4.1 Mô hình VPN site - to - site
Sơ lược về Strongswan
Strongswan là một giải pháp VPN mã nguồn mở, hỗ trợ giao thức IKEv1 và IKEv2, kết hợp với ngăn xếp NETKEY IPSec trong hạt nhân Linux.
Trọng tâm của Strongswan là:
Đơn giản của cấu hình.
Phương thức mã hóa và xác thực mạnh.
Chính sách IPSec mạnh mẽ hỗ trợ các mạng VPN lớn và phức tạp.
Thiết kế mô-đun với khả năng mở rộng tuyệt vời.
Lab cấu hình VPN site-to-site
Cấu hình IP 2 máy như sau:
Hình 4.2 IP máy Linux server site 1
Cổng ens33 có địa chỉ ip public 192.168.1.17 là cổng kết nối với
Cổng ens36 có địa chỉ ip 172.16.0.1 là cổng LAN với dãy mạng 172.16.0.0/24
Hình 4.3 IP máy Linux server site 2
Cổng ens33 có địa chỉ ip public 192.168.1.24 là cổng có thể kết nối với Internet
Cổng ens36 có địa chỉ ip 192.168.10.1 là cổng LAN với dãy mạng 192.168.10.0/24
Cấu hình 2 máy như sau:
Hình 4.4 IP máy client site 1
Hình 4.5 IP máy client site 2
Cài đặt và tắt tường lửa tạm thời cho hai máy server như sau:
Thay đổi các biến hệ thống này để cho phép chuyển tiếp IP và ngăn chuyển hướng ICMP bằng cách.
#echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf (bật chuyển tiếp ipv4)
To enhance network security, the command `echo "net.ipv4.conf.all.accept_redirects=0" >> /etc/sysctl.conf` is used to disable the acceptance of all ICMP redirect packets across all interfaces.
The command `echo "net.ipv4.conf.all.send_redirects=0" >> /etc/sysctl.conf` disables the acceptance of safe ICMP redirect packets across all network interfaces.
#sysctl -p /etc/sysctl.conf (dùng để kiểm tra các biến đã thay đổi hay chưa)
Hình 4.6 Kiểm tra các biến.
Cấu hình VPN Strongswan site 1 Đầu tiên, mở file cấu hình bằng lệnh:
#nano /etc/strongswan/ipsec.conf
File được cấu hình như các dòng bên dưới:
Hình 4.7 File cấu hình /strongswan/ipsec.conf site 1
The configuration includes the public IP address of Server Site 1 as 2.168.1.17, with a private IP range of 2.16.0.0/24 It identifies the server using the public IP 2.168.1.17 In contrast, Server Site 2 has a public IP address of 2.168.1.24, utilizing a private IP range of 2.168.10.0/24 and is identified by the public IP 2.168.1.24.
Tiếp theo cấu hình file #nano /etc/strongswan/ipsec.secrets với mã PSK:
Hình 4.8 Cấu hình file /etc/strongswan/ipsec.secrets site 1 với mã PSK
Trong đó: 192.168.1.17 là địa chỉ ip public của server site 1 và
192.168.1.24 là địa chỉ ip public của server site 2
Lưu ý: Ta phải cấu hình Firewall trước khi khởi động
Để cấu hình firewall ta thực hiện theo các lệnh sau:
#firewall-cmd set-default-zone=dmz
#firewall-cmd zone=dmz permanent add-rich-rule='rule protocol value="esp" accept'
#firewall-cmd zone=dmz permanent add-rich-rule='rule protocol value="ah" accept'
#firewall-cmd zone=dmz permanent add-portP0/udp (mở port
#firewall-cmd zone=dmz permanent add-portE00/udp (mở port 4500/udp)
#firewall-cmd permanent add-service="ipsec"
#firewall-cmd zone=dmz permanent add-masquerade
#firewall-cmd permanent direct add-rule ipv4 nat POSTROUTING 0 -m policy pol ipsec dir out -j ACCEPT
Lưu các file cấu hình và khởi động VPN:
Cấu hình VPN Strongswan site 2
Tương tự site 1, File được cấu hình như các dòng bên dưới:
#nano /etc/strongswan/ipsec.conf
Hình 4.9 File cấu hình /strongswan/ipsec.conf site 2
To configure the IP address settings for the servers, use the following parameters: set the left IP to 2.168.1.24 (the public IP of server site 2), with a private subnet of 2.168.10.0/24 for server site 2 The left ID should also be set to 2.168.1.24 For the right side, configure the IP to 2.168.1.17 (the public IP of server site 1), with a private subnet of 2.16.0.0/24 for server site 1, and the right ID should be 2.168.1.17.
Tiếp theo cấu hình file #nano /etc/strongswan/ipsec.secrets với mã PSK:
Hình 4.10 Cấu hình file /etc/strongswan/ipsec.secrets site 2 với mã PSK Trong đó:
192.168.1.24 là địa chỉ ip public của server site 2
192.168.1.17 là địa chỉ ip public của server site 1
Tương tự site 1 ta phải cấu hình Firewall trước khi khởi động.
#firewall-cmd set-default-zone=dmz
#firewall-cmd zone=dmz permanent add-rich-rule='rule protocol value="esp" accept'
#firewall-cmd zone=dmz permanent add-rich-rule='rule protocol value="ah" accept'
#firewall-cmd zone=dmz permanent add-portP0/udp (mở port
#firewall-cmd zone=dmz permanent add-portE00/udp (mở port 4500/udp)
#firewall-cmd permanent add-service="ipsec"
#firewall-cmd zone=dmz permanent add-masquerade
#firewall-cmd permanent direct add-rule ipv4 nat POSTROUTING 0 -m policy pol ipsec dir out -j ACCEPT
Lưu các file cấu hình và khởi động VPN:
4.4.3 Kiểm tra kết nối site – to - site giữa 2 server
Server site 1 Đầu tiên kiểm tra bằng lệnh:
Hình 4.11 Kiểm tra Strongswan site 1 Sau đó kiểm tra trạng thái của Strongswan (như bên dưới là thành công) Kiểm tra bằng lệnh:
Trước khi kiểm tra kết nối giữa hai site, việc định tuyến các địa chỉ trong hai site vào route là rất quan trọng Để thực hiện việc định tuyến này, cần thực hiện các bước cụ thể để đảm bảo kết nối được thiết lập một cách chính xác.
#sudo route add -net 172.16.0.0/24 gw 172.16.0.1
#sudo route add -net 192.168.1.0/24 gw 192.168.1.17
#sudo route add -net 192.168.10.0/24 gw 192.168.1.24
Trong đó 192.168.1.24 là địa chỉ ip của site 2
Sau đó kiểm tra kết nối bằng cách ping tất cả địa chỉ ip của site 2
Hình 4.13 Kết nối site 2 thành công
#ping 192.168.10.1 (mạng Lan của server site 2)
#ping 192.168.10.6 (mạng Lan của client site 2)
#ping 192.168.1.24 (mạng public của server site 2)
Tương tự, kiểm tra bằng lệnh: #tail -f /var/log/messages
Hình 4.14 Kiểm tra Strongswan site 2 Kiểm tra trạng thái của Strongswan (như bên dưới là thành công)
Kiểm tra bằng lệnh: #strongswan status
Hình 4.15 Kiểm tra trạng thái của Strongswan Tiếp theo định tuyến tương tự site 1 ta thực hiện:
#sudo route add -net 192.168.0.0/24 gw 192.168.0.1
#sudo route add -net 192.168.1.0/24 gw 192.168.1.24
#sudo route add -net 172.16.0.0/24 gw 192.168.1.17
Sau đó kiểm tra kết nối bằng cách ping tất cả địa chỉ ip của site 1
#ping 172.16.0.1 (mạng Lan của server site 1)
#ping 172.16.0.6 (là ip của client site 1)
#ping 192.168.1.17 (mạng public của server site 1)
Hình 4.16 Kết nối site 1 thành công Như vậy là kết nối site-to-site giữa 2 server đã thành công
Client site 1 Đầu tiên, định tuyến cho route: (chạy command (cmd) với quyền admin (Run as administrator)
#route add 192.168.1.0 mask 255.255.255.0 172.16.0.1 metric 1 –p Để kiểm tra ta dùng lệnh: #route print
Hình 4.17 Kiểm tra route của client 1Tiếp theo ta kiểm tra kết nối giữa client 1 và site 2 bằng cách ping tất cả địa chỉ ip trong site 2
Hình 4.18 Kết nối với client site 2 thành công Hình 4.19 Kết nối với server site 2 thành công
Client site 2 Đầu tiên, định tuyến cho route: (chạy command (cmd) với quyền admin (Run as Administrator)
#route add 192.168.1.0 mask 255.255.255.0 192.168.10.1 metric –p kiểm tra bằng lệnh: #route print
Hình 4.20 Kiểm tra route của client 2Tiếp theo ta kiểm tra kết nối giữa client 2 và site 1 bằng cách ping tất cả địa chỉ ip trong site 1.
Hình 4.21 Kết nối với client site 1 thành côngHình 4.22 Kết nối với server site 1 thành công
Tổng kết chương 4
Trong chương 4, hệ thống VPN site-to-site cho phép kết nối nhiều mạng LAN, giúp việc giao tiếp giữa hai máy client tại các chi nhánh khác nhau trở nên dễ dàng hơn.
Trong bài lab, nhóm đã triển khai Strongswan để cấu hình hệ thống VPN site-to-site, mang lại giải pháp bảo mật mạnh mẽ nhờ vào phương thức mã hóa và xác thực hiệu quả Strongswan hỗ trợ chính sách IPSec vững chắc, phù hợp cho các mạng VPN lớn và phức tạp, giúp tăng cường an toàn khi trao đổi dữ liệu Hơn nữa, sự đơn giản trong cấu hình của Strongswan tạo ra sự tiện lợi cho người dùng.
Hệ thống VPN site-to-site được nhiều doanh nghiệp sử dụng để kết nối các chi nhánh, mang lại lợi ích lớn trong việc truy cập thông tin mà không tốn chi phí đi lại Tuy nhiên, bên cạnh sự tiện lợi, tính bảo mật của hệ thống VPN là yếu tố quan trọng không thể bỏ qua, và điều này sẽ được trình bày chi tiết ở chương 5.
VPN VỚI IPSEC TRÊN MÔI TRƯỜNG LINUX
Tổng quan IPSec
IPSec là một tập hợp các giao thức giúp thiết lập kết nối mã hóa giữa các thiết bị, bảo vệ dữ liệu khi truyền qua mạng công cộng Thường được sử dụng để thiết lập VPN, IPSec hoạt động bằng cách mã hóa các gói IP và xác thực nguồn gốc của chúng.
Trong thuật ngữ “IPSec”, “IP” là viết tắt của “Internet Protocol” và
“Sec” là viết tắt của “Security”, chỉ ra tính an toàn trong giao thức Internet Protocol là một giao thức định tuyến quan trọng trên Internet, xác định hướng đi của dữ liệu thông qua địa chỉ IP Nhóm giao thức này được coi là an toàn nhờ vào việc bổ sung mã hóa và xác thực trong quá trình truyền tải dữ liệu.
Mạng Riêng Ảo (VPN) là một kết nối được mã hóa giữa nhiều máy tính, cho phép truyền tải dữ liệu an toàn qua các mạng công cộng Dù kết nối diễn ra trên mạng công cộng, thông tin trao đổi qua VPN vẫn được bảo vệ và giữ kín nhờ vào công nghệ mã hóa.
VPN cho phép người dùng truy cập và trao đổi dữ liệu một cách an toàn qua mạng chia sẻ Chẳng hạn, nhân viên làm việc từ xa thường sử dụng VPN để truy cập các tệp tin và ứng dụng của công ty.
Nhiều VPN sử dụng giao thức IPSec để thiết lập và duy trì các kết nối được mã hóa, nhưng không phải tất cả đều áp dụng giao thức này Một lựa chọn khác cho VPN là SSL/TLS, hoạt động ở một lớp khác trong mô hình OSI, một mô hình trừu tượng mô tả cách thức Internet hoạt động.
Cách thức hoạt động của IPSec
Kết nối bộ giao thức này bao gồm các bước sau:
Trao đổi key là yếu tố quan trọng trong mã hóa thông điệp, với key là chuỗi ký tự ngẫu nhiên dùng để mã hóa và giải mã Nhóm giao thức này thiết lập key thông qua quá trình trao đổi giữa các thiết bị kết nối, đảm bảo rằng mỗi thiết bị có khả năng giải mã tin nhắn từ các thiết bị khác.
Header và trailer của packet là những thành phần quan trọng trong việc truyền dữ liệu qua mạng Dữ liệu được chia thành các packet nhỏ, mỗi packet chứa payload (dữ liệu thực tế) và header (thông tin về dữ liệu) IPSec bổ sung thêm header để cung cấp thông tin xác thực và mã hóa, đồng thời thêm trailer sau payload của packet.
IPSec đảm bảo xác thực cho từng gói tin, tương tự như con dấu xác thực trên một vật phẩm sưu tầm Điều này giúp đảm bảo rằng các gói tin được gửi đến từ nguồn đáng tin cậy, ngăn chặn sự can thiệp từ hacker.
IPSec mã hóa nội dung bên trong mỗi gói dữ liệu và tiêu đề IP của chúng, đảm bảo rằng thông tin được truyền qua giao thức này được bảo mật và riêng tư.
Truyền dữ liệu IPSec sử dụng các gói tin được mã hóa để gửi thông tin qua một hoặc nhiều mạng đến đích, thường sử dụng giao thức UDP làm phương thức truyền tải thay vì TCP Điều này giúp lưu lượng IPSec khác biệt so với lưu lượng IP thông thường.
Giao thức thiết lập các kết nối chuyên dụng giữa các thiết bị, đảm bảo mọi gói dữ liệu được truyền đến đích Trong khi đó, UDP (User Datagram Protocol) không thiết lập các kết nối này, mà cho phép các gói IPSec vượt qua tường lửa.
Giải mã: Ở đầu kia của giao tiếp, các packet được giải mã và các app hiện có thể sử dụng dữ liệu được phân phối.
Kiến trúc IPSec
IPSec là một giao thức phức tạp, được xây dựng trên nền tảng của nhiều kỹ thuật cơ sở như mật mã, xác thực và trao đổi khóa Về mặt kiến trúc, IPSec bao gồm các thành phần cơ bản, mỗi thành phần đều được định nghĩa trong các tài liệu riêng biệt.
Kiến trúc IPSec (RFC 2401): Quy định các cấu trúc, các khái niệm và yêu cầu của IPSec.
Giao thức ESP (RFC 2406): Mô tả giao thức ESP, là một giao thức mật mã và xác thực thông tin trong IPSec.
Giao thức AH (RFC 2402) cung cấp một lựa chọn khác bên cạnh ESP trong triển khai IPSec Người sử dụng có thể lựa chọn giữa AH và ESP, mỗi giao thức đều có những ưu điểm và nhược điểm riêng.
Thuật toán mật mã là các phương pháp mã hóa và giải mã thông tin, đóng vai trò quan trọng trong giao thức IPSec IPSec chủ yếu sử dụng các thuật toán mã hóa đối xứng, giúp đảm bảo tính bảo mật và toàn vẹn dữ liệu trong quá trình truyền tải.
Thuật toán xác thực: Định nghĩa các thuật toán xác thực thông tin sử dụng trong AH và ESP.
Quản lý khoá (RFC 2408): Mô tả các cơ chế quản lý và trao đổi khóa trong IPSec.
Miền thực thi (Domain of Interpretation – DOI) định nghĩa môi trường thực thi của IPSec, không chỉ là một công nghệ riêng lẻ mà là sự kết hợp của nhiều cơ chế, giao thức và kỹ thuật khác nhau, mỗi loại đều có nhiều chế độ hoạt động Chức năng của miền thực thi là xác định tập hợp các chế độ cần thiết để triển khai IPSec trong các tình huống cụ thể Về mặt ứng dụng, IPSec hoạt động song song với IP để cung cấp hai chức năng cơ bản mà IP nguyên thủy chưa có: mã hóa và xác thực gói dữ liệu Tóm lại, IPSec có thể được xem là một tổ hợp gồm hai thành phần chính.
Giao thức đóng gói, gồm AH và ESP: Bảo vệ truyền thông IP, dựa vào
SA (khóa, địa chỉ, các thuật toán mật mã).
Giao thức trao đổi khóa IKE (Internet Key Exchange): Để thiết lập các
SA (Security Association) cho AH hoặc ESP, và duy trì/quản lý các kết nối.
Các giao thức sử dụng trong IPSec
Trong mạng, giao thức (protocol) là cách định dạng dữ liệu để các máy tính kết nối có thể hiểu và xử lý thông tin Nhóm giao thức 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ộ IPSec được cấu thành từ các giao thức sau đây.
Authentication Header (AH) là một giao thức đảm bảo rằng các gói dữ liệu đến từ nguồn đáng tin cậy và không bị giả mạo, tương tự như con dấu chống giả mạo trên sản phẩm tiêu dùng Mặc dù các header này cung cấp sự xác thực, nhưng chúng không cung cấp mã hóa và không bảo vệ dữ liệu khỏi sự xâm nhập của hacker.
The Encapsulating Security Protocol (ESP) encrypts the IP header for each packet, except when using transport mode, where only the payload is encrypted Additionally, ESP appends a unique header and a trailer to each data packet.
A Security Association (SA) refers to a set of protocols employed for negotiating keys and encryption algorithms, with the Internet Key Exchange (IKE) being one of the most widely used SA protocols.
Cuối cùng, mặc dù Internet Protocol (IP) không phải là một phần của IPSec,nhưng nhóm giao thức này chạy trực tiếp trên IP.
AH cung cấp các dịch vụ xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn dữ liệu và chống phát lại Cần phân biệt giữa toàn vẹn dữ liệu, kiểm tra sự thay đổi của từng gói tin IP, và dịch vụ chống phát lại, kiểm tra sự lặp lại của gói tin đến địa chỉ đích AH cho phép xác thực các trường trong IP header cùng dữ liệu của các giao thức lớp trên, nhưng không bảo vệ được một số trường của IP header do chúng thay đổi trong quá trình truyền Do đó, AH chỉ bảo vệ một phần của IP header và không cung cấp xử lý bảo mật cho dữ liệu của các lớp trên, khiến tất cả dữ liệu được truyền dưới dạng văn bản rõ.
AH nhanh hơn ESP, vì vậy bạn có thể chọn AH khi bạn chắc chắn về nguồn gốc và tính toàn vẹn của dữ liệu, trong khi không cần quá lo lắng về tính bảo mật của dữ liệu.
Giao thức AH cung cấp chức năng xác thực thông qua việc sử dụng hàm băm một chiều để tạo ra đoạn mã xác thực cho dữ liệu gói Đoạn mã này được chèn vào thông tin gói truyền đi, giúp phát hiện bất kỳ thay đổi nào trong nội dung gói trong quá trình truyền Khi gói dữ liệu được thu nhận, hàm băm một chiều sẽ được thực hiện và so sánh với giá trị hash đã truyền để xác minh tính toàn vẹn Hàm băm được áp dụng cho toàn bộ gói dữ liệu, ngoại trừ một số trường trong IP header có giá trị thay đổi mà phía thu không thể dự đoán trước, như thời gian sống của gói tin.
5.4.2 Giao thức Encapsulating Security Payload (ESP)
Giao thức ESP, tương tự như AH, được phát triển hoàn toàn cho IPSec và cung cấp tính bí mật dữ liệu thông qua việc mã hóa các gói tin Nó cũng đảm bảo nhận thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn, dịch vụ chống phát lại và một số giới hạn về luồng lưu lượng cần bảo mật Các dịch vụ mà ESP cung cấp phụ thuộc vào các tùy chọn thiết lập SA, và dịch vụ bảo mật được cung cấp một cách độc lập Tuy nhiên, để đảm bảo hiệu quả bí mật, cần kết hợp dịch vụ nhận thực với tính toàn vẹn dữ liệu Hai dịch vụ này luôn đi kèm nhau, và dịch vụ chống phát lại chỉ khả thi khi có nhận thực Giao thức ESP được sử dụng khi có yêu cầu về bí mật cho lưu lượng IPSec.
5.4.3 Quản lý khóa với Internet Key Exchange (IKE)
Bộ IPSec cung cấp ba khả năng chính: xác nhận và toàn vẹn dữ liệu thông qua hai giao thức AH và ESP, cùng với tính cẩn mật Ngoài ra, IPSec sử dụng giao thức Internet Exchange Key (IKE) để quản lý khóa, giúp thỏa thuận các giao thức bảo mật và thuật toán mã hóa trong suốt quá trình giao dịch.
IKE SA là một quá trình hai chiều, tạo ra kênh giao tiếp bảo mật giữa hai bên Quá trình này bắt đầu với các cookies từ bên khởi tạo, tiếp theo là các cookies từ bên đối tác Thứ tự các cookies được thiết lập trong phase1 sẽ xác định IKE SA, bất kể chiều của nó Chức năng chính của IKE là thiết lập và duy trì các SA Các thuộc tính tối thiểu cần được thống nhất giữa hai bên như một phần của ISAKMP SA bao gồm
Thuật giải băm được sử dụng.
Phương thức xác thực sẽ dùng.
Thông tin về nhóm và giải thuật DH.
IKE thực hiện việc dò tìm, xác thực, quản lý và trao đổi khóa trong giao thức IPSec Quá trình này giúp thiết lập hợp đồng giữa hai đầu cuối IPSec, sau đó SA sẽ giám sát tất cả các thành phần của phiên làm việc IPSec Khi quá trình dò tìm hoàn tất, các thông số SA hợp lệ sẽ được lưu trữ trong cơ sở dữ liệu của SA.
Ưu và nhược điểm của VPN sử dụng IPSEC
IPSec là một giải pháp an ninh mạng hoạt động ở cấp độ mạng, hoàn toàn vô hình và không yêu cầu người dùng tương tác, điều này làm cho nó trở thành lựa chọn lý tưởng cho các VPN Vì IPSec giám sát toàn bộ lưu lượng mạng, các VPN dựa trên IPSec được khuyến nghị cho những khách hàng cần bảo vệ cả lưu lượng vào và ra Đặc biệt, IPSec VPN không phụ thuộc vào loại ứng dụng nào, vì tất cả đều được định tuyến bằng IP, giúp đảm bảo tính tương thích Yêu cầu duy nhất là cần có sự điều chỉnh trong hệ điều hành.
Bảo mật dữ liệu trong IPSec được thực hiện thông qua việc sử dụng các khóa công khai, giúp bảo vệ quyền riêng tư của dữ liệu Mọi dữ liệu trao đổi giữa máy chủ và mạng đều được mã hóa bằng khóa công khai, đảm bảo an toàn cho thông tin Hơn nữa, việc bảo vệ các khóa này giúp người dùng xác minh rằng dữ liệu đến từ máy chủ lưu trữ hợp lệ, tránh bị giả mạo Nhờ đó, nội dung trong gói dữ liệu được bảo vệ khỏi sự nghe trộm và các hình thức gián điệp khác.
IPSec có thể được triển khai cho mọi loại mạng, từ LAN đến WAN, nhờ vào sự hiện diện của Lớp IP Điều này cho phép bảo mật được áp dụng trên toàn bộ mạng, bao gồm cả Internet.
IPSec thực hiện xác thực thông qua việc sử dụng chữ ký số cho mỗi gói dữ liệu, đảm bảo rằng mọi hình thức can thiệp từ bên thứ ba đều được bảo vệ.
Nội dung bên trong tiêu đề gói không thể bị sửa đổi mà không bị phát hiện, đồng thời cũng đóng vai trò xác minh danh tính cho cả hai đầu của kết nối.
Chi phí CPU trong việc sử dụng IPSec là một yếu tố quan trọng, vì tất cả dữ liệu cần được mã hóa và giải mã liên tục Điều này yêu cầu sức mạnh xử lý cao từ CPU, đặc biệt là khi kích thước gói dữ liệu nhỏ Khi chi phí IPSec tăng cao, hiệu suất mạng sẽ bị ảnh hưởng tiêu cực.
Tính tương thích của IPSec có thể gặp khó khăn do một số nhà phát triển phần mềm không tuân thủ các quy trình của nó, dẫn đến vấn đề tương thích với một số ứng dụng Hơn nữa, IPSec thiếu tiêu chuẩn nhất quán về khả năng tương thích, gây ra thêm thách thức cho người dùng.
Các thuật toán bảo mật trong IPSec có nguy cơ bị bẻ khóa, khiến người sử dụng chúng phải đối mặt với mức độ rủi ro cao hơn Tuy nhiên, các mô hình thuật toán mới nhất hiện nay đã được chứng minh là có khả năng ngăn chặn những lỗ hổng này, mang lại sự bảo mật tốt hơn cho người dùng.
Phạm vi truy cập của IPSec rộng, dẫn đến nguy cơ cao hơn trong việc cấp quyền cho các thiết bị khác trong mạng Nếu một PC bị nhiễm phần mềm độc hại, tất cả các máy tính khác trong mạng công ty cũng sẽ bị ảnh hưởng Vì vậy, nếu không có các biện pháp bảo mật đặc biệt, mạng dựa trên IPSec luôn tiềm ẩn rủi ro về an ninh mạng.
Hạn chế do tường lửa của công ty có thể ngăn người dùng truy cập Internet ngay cả trên mạng nội bộ Để khắc phục tình trạng này, người dùng cần liên hệ với quản trị viên mạng để được hỗ trợ truy cập.
Giao thức đường hầm L2TP
L2TP, hay Layer 2 Tunneling Protocol, là một giao thức tunneling giúp tạo "đường hầm" để truyền dữ liệu qua các mạng Giao thức này hỗ trợ việc thiết lập mạng riêng ảo (VPN) và đóng vai trò quan trọng trong mạng phân phối dịch vụ của các nhà cung cấp dịch vụ Internet (ISP) Tuy nhiên, L2TP chỉ áp dụng mã hóa cho các tin nhắn điều khiển mà không cung cấp bảo mật hay mã hóa cho nội dung dữ liệu.
Gói tin L2TP được truyền qua UDP, bao gồm cả payload và header Một lợi ích quan trọng của việc sử dụng UDP thay vì TCP là nó giúp tránh hiện tượng TCP meltdown, khi hai giao thức truyền dẫn xung đột và gây khó khăn trong việc khắc phục mất gói tin.
Điểm cuối của đường hầm L2TP bao gồm bộ tập trung truy cập L2TP (LAC) và máy chủ mạng L2TP (LNS) Lưu lượng mạng trong đường hầm L2TP là hai chiều và được chia thành nhiều session thông qua các giao thức cấp cao hơn như PPP Cả LAC và LNS đều có khả năng khởi động một session, và lưu lượng của mỗi session được cách ly bởi L2TP, cho phép thiết lập nhiều mạng ảo trên một đường hầm duy nhất.
Trong một đường hầm L2TP, các gói tin được phân loại thành gói điều khiển và gói dữ liệu L2TP chỉ cung cấp tính năng bảo mật cho gói điều khiển, trong khi gói dữ liệu không được bảo vệ Để đảm bảo độ tin cậy, cần sử dụng các bộ giao thức khác, chẳng hạn như IPSec, để lồng ghép trong mỗi phiên của đường hầm L2TP.
L2TP cho phép thiết lập mạng riêng ảo (VPDN) để kết nối máy khách từ xa với mạng công ty thông qua hạ tầng chung, như Internet hoặc mạng của nhà cung cấp dịch vụ.
5.6.3 Ưu nhược điểm của L2TP Ưu điểm:
L2TP có thể được kết hợp với IPSec để cung cấp mức độ bảo mật trực tuyến tốt.
Dễ thiết lập ngay cả với sự kết hợp L2TP/IPSec.
Được tích hợp trong các hệ điều hành desktop phổ biến như Windows và MacOS, phần mềm này cũng có khả năng cấu hình cho nhiều thiết bị và hệ điều hành khác nhau.
Tốc độ tương đối cao do không có phương thức bảo mật.
L2TP không có phương thức mã hóa riêng, nên cần kết hợp với các giao thức mã hóa khác như IPSec để đảm bảo bảo mật Tuy nhiên, sự kết hợp này có thể tiêu tốn tài nguyên và làm giảm tốc độ xử lý.
L2TP có thể bị tường lửa NAT (Network Address Translation) chặn nếu nó không được cấu hình thêm để bỏ qua chúng.
Lab cấu hình L2TP/IPSEC
Hình 5.1 Mô hình L2TP/IPSec
Cần chuẩn bị một VPS/Server chạy hệ điều hành CentOS 7 và cập nhật phần mềm mới nhất bằng lệnh: # yum update -y
Tiếp theo tắt SELinux để tránh các lỗi phát sinh bằng lệnh:
# nano /etc/sysconfig/selinux (Sửa giá trị “SELINUX=enforcing” thành
Sau khi cập nhật xong và tắt SELinux ta phải khởi động lại máy chủ để nhận cấu hình mới.
- Cài đặt giao thức L2TP: Mặc định trên CentOS 7 chưa hỗ trợ sẵn giao thức L2TP nên cần cài vào máy chủ hai gói sau.
#yum install xl2tpd libreswan
Để thiết lập các thông số trong nhân Linux cho việc kết nối luồng dữ liệu từ các máy client vào VPN Server, bạn cần chỉnh sửa file “sysctl.conf” tại đường dẫn chỉ định.
Hình 5.2 Các thông số trong nhân Linux
Sau khi cấu hình xong tiến hành save lại và dùng lệnh sau để nhân Linux nhận các thiết lập này:
IPSec là giao thức bảo mật dùng để mã hóa thông tin, đã có sẵn trên CentOS 7 mà không cần cài đặt thêm Bạn chỉ cần mở file cấu hình tại đường dẫn được chỉ định và điều chỉnh các thông số theo ý muốn.
#nano /etc/ipsec.d/l2tp_psk.conf
Next, the configuration of the Pre-Shared Key (PSK) password is essential, as this is a common password that all clients must enter to connect to the VPN.
Hình 5.4 Cấu hình mật khẩu PSK Tiếp đến là bật dịch vụ IPSec lên và kiểm tra.
Hình 5.5 Kiểm tra dịch vụ IPSec
Cho phép IPSec tự bật khi khởi động lại server.
Cấu hình dịch vụ xl2tpd cho phép tương tác với giao thức L2TP, bao gồm các thông số như địa chỉ IP cấp phát, phương thức xác thực và quản lý người dùng đăng nhập Để bắt đầu, hãy mở file và thực hiện cấu hình dịch vụ.
#nano /etc/xl2tpd/xl2tpd.conf
Hình 5.6 Cấu hình dịch vụ xl2tpd Tiếp đến mở file “options.xl2tpd”
#nano /etc/ppp/options.xl2tpd
Xóa hết nội dung bên trong và thay thế vào nội dung mới bên dưới:
Hình 5.7 Cấu hình options.xl2tpdTiếp đến là khai báo username và password cho từng client trong file sau: #nano /etc/ppp/chap-secrets
Hình 5.8 Khai báo username và password
Khởi động dịch vụ xl2tpd lên và cho phép khởi động cùng server bằng hai lệnh sau:
Cần cấu hình mở port và cho phép gói tin đi qua card mạng trên server bằng cách gõ trực tiếp các lệnh sau.
To log in to a Windows 7 client, navigate to Control Panel, select Network and Internet, and then open Network and Sharing Center From there, choose "Set up a new connection or network," select "Connect to a workplace," and finally opt for "Use my Internet connection (VPN)."
Tại đây đăng nhập địa chỉ ip của máy chủ và tên sau đó nhấn Next
Hình 5.10 Đăng nhập địa chỉ máy chủ
Hình 5.11 Đăng nhập tên và mật khẩu Sau đó nhập tên và mật khẩu rồi chọn Connect
To configure the VPN server, click on Properties, enter the server IP under the General tab, uncheck "include Windows logon domain" in the Options tab, and select "Layer 2 tunneling protocol with IPsec (L2TP/IPsec)" for the type of VPN in the Security tab, ensuring data encryption is enabled.
"Optional encryption (connect even if no encryption)").
Hình 5.12 Đăng nhập VPN thành côngHình 5.13 Kết nối VPN thành công
Tổng kết chương 5
IPSec là giao thức thiết yếu cho cấu hình VPN, với hai cơ chế chính là AH và ESP AH đảm bảo xác thực nguồn gốc dữ liệu, trong khi ESP cung cấp tính an toàn cho các gói tin truyền Sự kết hợp này là yếu tố quan trọng trong việc mã hóa và bảo mật thông tin.
IPSec đóng vai trò quan trọng trong việc xác thực hai chiều và mã hóa đường truyền, bảo vệ các gói dữ liệu cũng như địa chỉ IP Điều này không chỉ giúp bảo vệ thông tin của doanh nghiệp mà còn nâng cao độ an toàn cho đường truyền, ngăn chặn các cuộc tấn công mạng không an toàn.
Trong bài lab cấu hình hệ thống VPN trên môi trường Linux, nhóm đã tích hợp giao thức L2TP, một trong những giao thức phổ biến nhất hiện nay Sự kết hợp giữa IPSec và L2TP không chỉ hỗ trợ lẫn nhau mà còn nâng cao tính bảo mật cho hệ thống, điều này rất quan trọng cho doanh nghiệp.
IPSec đã nhanh chóng trở thành tiêu chuẩn hàng đầu trong việc bảo mật thông tin trên mạng TCP/IP, nhờ vào khả năng hỗ trợ nhiều lược đồ mã hóa và xác thực Phương pháp này linh hoạt, phù hợp với yêu cầu bảo mật của cả tổ chức lớn lẫn nhỏ Các ngành công nghiệp sử dụng công nghệ liên mạng để giao tiếp với đối tác sẽ được hưởng lợi từ các lược đồ xác thực và mã hóa của IPSec Đồng thời, khả năng mở rộng và quản lý tập trung của IPSec mang lại lợi ích cho các tổ chức lớn Hơn nữa, IPSec cho phép tạo ra mạng riêng ảo, giúp nhân viên làm việc từ xa, đi công tác, và các văn phòng chi nhánh dễ dàng truy cập vào công ty qua Internet.