CÁC GIAO THỨC VPN 1 L2TP

Một phần của tài liệu Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính - Ứng Dụng Openvpn Trong Bảo Mật Hệ Thống Mạng Cho Doanh Nghiệp (Trang 32 - 40)

CHƯƠNG 3: CÔNG NGHỆ VPN VÀ CÁC GIAO THỨC HỖ TRỢ

3.2.CÁC GIAO THỨC VPN 1 L2TP

3.2.1. L2TP

Trước khi xuất hiện chuẩn L2TP (tháng 8 năm 1999), Cisco sử dụng Layer 2 Forwarding (L2F) như là giao thức chuẩn để tạo kết nối VPN. L2TP ra đời sau với những tính năng được tích hợp từ L2F.

L2TP là dạng kết hợp của Cisco L2F và Microsoft Point-to-Point Tunneling Protocol (PPTP). Microsoft hỗ trợ chuẩn PPTP và L2TP trong các phiên bản WindownNT và 2000

L2TP được sử dụng để tạo kết nối độc lập, đa giao thức cho mạng riêng ảo quay số (Virtual Private Dial-up Network). L2TP cho phép người dùng có thể kết nối thông qua các chính sách bảo mật của công ty (security policies) để tạo VPN hay VPDN như là sử mở rộng của mạng nội bộ công ty.

L2TP không cung cấp mã hóa

Hình 3.2. Giao thức L2TP

L2TP là sự kết hợp của PPP (giao thức Point-to-Point) với giao thức L2F (Layer 2 Forwarding) của Cisco do đó rất hiệu quả trong kết nối mạng dial, ADSL và các mạng truy cập từ xa khác. Giao thức mở rộng này sử dụng PPP để cho phép truy cập VPN bởi những người sử dụng từ xa.

3.2.2. L2F

Là giao thức lớp 2 được phát triển bởi Cisco System. L2F được thiết kế cho phép tạo đường hầm giữa NAS và một thiết bị VPN Gateway để truyền các Frame, người sử dụng từ xa có thể kết nối đến NAS và truyền Frame PPP từ remote user đến VPN Gateway trong đường hầm được tạo ra.

3.2.3. PPTP

Đây là giao thức đường hầm phổ biến nhất hiện nay. Giao thức được phát triển bởi Microsoft. PPTP cung cấp một phần của dịch vụ truy cập từ xa RAS (Remote Access

Service). Như L2F, PPTP cho phép tạo đường hầm từ phía người dùng truy cập vào VPN Gateway

PPTP được định nghĩa bởi IETF trong RFC 2673, cho phép các kết nối chi phí thấp đến các mạng doanh nghiệp thông qua mạng Internet công cộng. Các phiên kết nối PPTP bảo mật cho phép kết nối vào mạng doanh nghiệp thông qua Internet. Các cuộc gọi này thường được gọi vào các thiết bị phần cứng, sau đó thiết bị này kết nối vào một Windows NT Server. Bởi vì PPP hỗ trợ nhiều giao thức khác nhau, nó có thể truy cập các hạ tầng mạng rất khác nhau. Kiến trúc này bao gồm các ứng dụng client/server trong đó client là các PC của người dùng, chạy PPTP. Về phía Server, sẽ có các dial-in routers, VPN concentrator.

Cả hai đều có thể khởi tạo tunnel. Khi người dùng ở xa khởi tạo một tunnel, nó được gọi là chế độ xung phong. Khi tunnel được tạo từ server chế độ này được gọi là compulsory mode. Một NAS có thể khởi tạo một tunnel ngay cả khi một client không có chạy PPTP.

PPTP sẽ đóng gói các frame PPP vào các IP datagrams để truyền trên hệ thống mạng IP, chẳng hạn như mạng Internet/ Intranet. PPTP sẽ kế thừa các đặc tính của PPP như mã hóa, nén…PPTP yêu cầu một hạ tầng mạng IP giữa một PPTP clients và một PPTP server. PPTP client có thể được kết nối vào một mạng IP mà PPTP Server cũng kết nối vào mạng IP này. Hoặc PPTP clients cũng có thể quay vào một NAS để thiết lập kết nối IP

PPTP dùng TCP để tạo và hủy các tunnel. PPTP cũng dùng một phiên bản bổ sung của GRE để đóng gói PPP như là dữ liệu của tunnel. Tải của khung PPP có thể được mã hóa hoặc nén hoặc cả hai.

Quá trình xác thực diễn ra trong giai đoạn tạo các kết nối VPN PPTP sử dụng cùng một cơ chế như các kết nối PPP, nghĩa là cũng dùng PAP hoặc CHAP. Một phiên bản nâng cao của CHAP, được gọi là MS-CHAP được tạo ra bởi Microsoft dùng các thông tin trong NT Domain. Một chọn lựa khác cho quá trình xác thực là IETF PPP. Microsoft cũng đã tích hợp một giao thức khác gọi là Microsoft Point-to-Point-Encryption để mã hóa traffic trên các kết nối PPP. MPPE dựa trên thuật toán RSA R4. Nếu quá trình mã hóa

trên toàn bộ kết nối là cần thiết, IPSEC có thể mã hóa IP traffic từ đầu kết nối cho đến cuối kết nối sau khi một kênh PPTP đã được thiết lập.

PPTP là sự mở rộng của giao thức PPP cơ bản cho nên giao thức PPTP không hỗ trợ những kết nối nhiều điểm liên tục mà nó chỉ hỗ trợ kết nối từ điểm tới điểm. Để tận dụng ưu điểm của kết nối được tạo ra bởi PPP, PPTP định nghĩa hai loại gói tin: Gói điều khiển và gói dữ liệu rồi gán chúng lên hai kênh riêng. Sau đó PPTP, phân tách các kênh điều khiển và kênh dữ liệu thành luồng điều khiển với giao thức TCP và luồng dữ liệu với giao thức IP. Kết nối TCP được tạo ra giữa client PPTP với máy chủ PPTP được sử dụng để chuyển thông báo điều khiển. Sau khi đường hầm được thiết lập thì dữ liệu được truyền từ client sang máy chủ PPTP chứa các gói dữ liệu IP. Gói dữ liệu IP được đóng gói tiêu đề như hình sau:

Hình 3.3. Định dạng gói tin điều khiển thông điệp PPTP

Hình 3.4. Định dạng gói tin dữ liệu PPTP

Khi đóng gói nó có sử dụng số ID của host cho điều khiển truy cập. ACK cho giám sát tốc độ truyền dữ liệu trong đường hầm. PPTP cũng có cơ chế điều khiển tốc độ nhằm giới hạn số lượng dữ liệu truyền đi. Chế độ này làm giảm tối thiểu kích thước dữ liệu phải truyền lại do mất gói.

Kết nối PPTP giữa địa chỉ IP và PPTP client và IP address của PPTP server dùng port 1723. Các gói dữ liệu PPTP mang các thông tin điều khiển kết nối để duy trì PPTP tunnel.

Sau giai đoạn bắt tay ban đầu, hai bên sẽ trao đổi một loạt các thông điệp bao gồm 12 thông điệp thiết lập và duy trì kết nối PPTP. Quá trình đóng gói dữ liệu thông qua nhiều mức đóng gói khác nhau. Dữ liệu ban đầu được mã hóa và đóng gói trong các PPP Header để tạo ra các frame PPP. Frame PPP này sau đó sẽ được đóng gói với các GRE Header.

Để tóm tắt quá trình xử lý gói tin PPTP, chúng ta có thể hình dung thông qua ba bước sau:

- Quá trình thiết lập kết nối PPP. - Điều khiển kết nối

- PPTP Tunneling và trao đổi dữ liệu

Quá trình điều khiển kết nối: Sau khi kết nối PPP giữa PPTP Client và Server được thiết lập, quá trình điều khiển PPTP được thiết lập dựa trên cơ sở địa chỉ IP của client và server, sử dụng cổng TCP động và chiếm giữ cổng TCP 1723. Sau khi quá trình điều khiển kết nối được thiết lập, các thông tin điều khiển và quản lý sẽ được trao đổi giữa các bên có liên quan trong quá trình giao tiếp. Những thông tin đảm nhiệm vai trò bảo trì, quản lý và kết thúc PPP tunnel. Những thông điệp này là những thông điệp có định kỳ bao gồm “PPTP-Echo-Request, PPTP-Echo-Reply” dùng để giúp đỡ trong quá trình dò tìm các kết nối PPTP hư hỏng giữa server và client

Hình 3.5. Quá trình điều khiển kết nối

Một số thông điệp phổ biến trong quá trình điều khiển kết nối PPTP Control

Tên Mô tả (adsbygoogle = window.adsbygoogle || []).push({});

Connection-Request Start-Control- Connection-Reply

Hồi đáp từ PPTP server đến thông điệp Start-Control- Connection-Request từclient

Outgoing-Call-Request Yêu cầu từ PPTP Client đến Server để thiết lập một PPTP Tunnel

Outgoing-Call-Reply Hồi đáp từ PPTP-Server đến thông điệp Outgoing-Call- Request của Client

Echo-Request Cơ chế duy trì của client hoặc server. Nếu bên đối diện không hồi đáp lại thông điệp, tunnel sẽ được ngắt

Echo-Reply Hồi đáp lại thông điệp Echo-Request từ bên yêu cầu Set-Link-Info Thông điệp tùy chọn từ một bên có liên quan PPP

Call-Clear-Request Thông điệp từ PPTP Client khởi tạo quá trình kết thúc của tunnel

Call-Disconnect-Notify Hồi đáp từ server đến Call-Clear-Request của client. Nó cũng được xem là thông điệp từ server khởi tạo quá trình kết thúc tunnel.

WAN-Error-Notify Thông điệp từ PPTP Server đến tất cả các PPTP Client nhằm thông báo trong PPP interface của server

Stop-Control-

Connection-Request

Thông điệp từ PPTP Client hoặc server thông báo một sự kết thúc trong quá trình kết thúc kết nối điều khiển

Stop-Control- Connection-Reply

Hồi đáp từ phía đối diện đến thông điệp Stop-Control- Connection-Request

Bảng 3.1. Bảng các thông điệp điều khiển kết nối PPTP

Quá trình tạo đường hầm dữ liệu và xử lý PPTP: Một gói dữ liệu PPTP phải trải qua nhiều giai đoạn đóng gói, bao gồm những giai đoạn sau:

- Quá trình đóng gói dữ liệu: Thông tin nguyên bản tối đa được mã hóa và được đóng gói bên trong một PPP Frame. Một PPP Header được thêm vào Frame.

- Quá trình đóng gói PPP Frame: Tổng hợp các PPP Frame sau đó đóng gói bên trong một Generic Routing Encapsulation (GRE) đã được sửa đổi. GRE Header chứa trường 4 byte ACK và một bit ACK hồi đáp. Ngoài ra trường khóa GRE Frame được thay

thế bằng trường 2 byte gói là chiều dài tối đa và 2 byte được xem là ID. PPTP Client xây dựng những trường này khi nó tạo PPTP Tunnel.

- Quá trình đóng gói GRE: Kế tiếp, một IP Header đã được đóng gói bên trong GRE được thêm vào PPP Frame. Phần IP header này chứa đựng địa chỉ IP nguồn của PPTP client và đích của server.

- Quá trình đóng gói tầng Data Link: PPTP là một giao thức tạo đường hầm nằm ở tầng 2. Vì vậy phần header của Data Link và phần đuôi giữ vai trò quan trọng trong việc tạo đường hầm dữ liệu. Trước khi được đặt vào môi trường truyền thông, tầng Data Link thêm phần đầu và đuôi của nó vào gói dữ liệu. Nếu gói dữ liệu được truyền qua PPTP tunnel cục bộ, gói dữ liệu được đóng gói bằng phần đầu và đuôi theo công nghệ LAN (như Ethernet). Ở một khía cạnh khác, nếu tunnel được đáp lại thông qua một kết nối WAN, phần đầu và đuôi mà được thêm vào gói dữ liệu một lần nữa thì không thay đổi.

Hình 3.6. Quá trình xử lý dữ liệu PPTP

3.2.4. GRE

Đây là đa giao thức truyền thông đóng gói IP, CLNP và tất cả các gói dữ liệu bên trong đường ống IP (IP Tunnel).

Với GRE Tunnel, Cisco router sẽ đóng gói cho mỗi vị trí một giao thức đặc trưng chỉ định trong gói IP header, tạo một đường kết nối ảo (virtual point-to-point) tới Cisco router cần đến. Và khi gói dữ liệu đến đích IP header sẽ được mở ra.

Bằng việc kết nối nhiều mạng con với giao thức khác nhau trong môi trường có một giao thức chính. GRE Tunneling cho phép các giao thức khác có thể thuận lợi trong việc định tuyến cho gói IP

GRE được định nghĩa trong RFC 1701 và 1702, đơn giản chỉ là một cơ chế để thực hiện quá trình đóng gói một giao thức lớp network tùy ý vào một giao thức khác. GRE cung cấp một cơ chế đơn giản, gọn nhẹ để đóng gói data để gửi trên mạng IP.

GRE là một cơ chế đóng gói đơn giản, nhẹ cân, đa năng cho dữ liệu cơ sở. GRE thường được dùng bởi nhà cung cấp ISPs dùng để chuyển hướng thông tin định tuyến bên trong mạng Intranet của họ. Tuy nhiên các Internet backbone router trong mạng Intranet của ISP trích lọc lưu lượng GRE này. Do đó, PPTP Tunnel đã được thiết lập có thể đảm bảo và bí mật chuyển đến cho người nhận. Khi dữ liệu này chuyển thành công đến người nhận, người nhận phải xử lý gói dữ liệu đã tunnel trích ra thành dữ liệu nguyên bản. Để nhận được dữ liệu nguyên gốc người nhận theo các bước sau:

- Người nhận xử lý và gỡ bỏ phần đầu và phần đuôi của Data Link Header mà đã được thêm vào bởi người gửi.

- Kế tiếp, phần đầu GRE được gỡ bỏ. - Phần đầu IP được xử lý và được gỡ bỏ. - Phần đầu PPP được xử lý và gỡ bỏ. (adsbygoogle = window.adsbygoogle || []).push({});

3.2.5. IPSec

IPSec là sự lựa chọn cho việc bảo mật trên VPN. IPSec là một khung bao gồm bảo mật dữ liệu (data confidentiality), tính toàn vẹn của dữ liệu và việc chứng thực dữ liệu.

IPSec cung cấp dịch vụ bảo mật ứng dụng KDE cho phép thỏa thuận các giao thức và thuật toán trên nền chính sách cục bộ (group policy) và sinh ra các khóa bảo mật mã hóa và chứng thực được sử dụng trong IPSec

Hình 3.7. IPSec

Một phần của tài liệu Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính - Ứng Dụng Openvpn Trong Bảo Mật Hệ Thống Mạng Cho Doanh Nghiệp (Trang 32 - 40)