NỘI DUNG
Nếu mục đích sử dụng VPN của bạn chỉ đơn thuần là thay đổi IP nhằm sử dụng một số “dịch vụ bị chặn” thì cụm từ “bảo mật kết nối VPN” nghe “xa xỉ” quá. Tuy nhiên, ai biết được một ngày xấu trời nào đó đang xài VPN bạn lại tiện tay thực hiện một số công việc cần bảo mật thông tin thì sao? Với phương châm “giết lầm hơn bỏ sót”, tôi nghĩ trong mọi trường hợp sử dụng, bạn cũng nên dành ít thời gian ra suy ngẫm về câu hỏi “VPN Protocol bạn đang dùng có an toàn không?”
Tôi vô thẳng vấn đề luôn: Không ai có thể khẳng định kết nối VPN an toàn 100%, tuy nhiên, việc bạn có thể làm là nghiên cứu và lựa chọn cái VPN Protocol tốt nhất trong điều kiện cho phép. Như vậy, để bảo đảm độ bảo mật cao nhất có thể, trước hết, bạn cần thực hiện 2 bước sau:
– Xác định VPN Protocol đang dùng;
– Xác định các loại VPN Protocol thay thế để tăng độ bảo mật (nếu có).
Góc trợ giúp:
Thông thường, tôi sẽ bố trí góc trợ giúp ngay bên dưới các nội dung rối rắm cần làm rõ. Tuy nhiên, nội dung liên quan đến vấn đề mã hóa, bảo mật thường rất hại não nên tôi thấy cần phải nói ngay ở phần đầu (tôi sẽ duy trì thông tin này trong toàn Series để bảo đảm bạn không quên).
Với các giáo trình chuẩn, thông thường bạn sẽ được giới thiệu các khái niệm cơ bản trước. Sau đó, các khái niệm này sẽ được phát triển dần lên và kết hợp lại tạo thành các hệ thống phức tạp. Dù phương án chuẩn là thế nhưng xuất phát từ kinh nghiệm xương máu của bản thân, đối với vấn đề như mã hóa, tôi thấy tìm hiểu theo trình tự trên dễ “gây mê” cho người đọc. Và nguy hiểm hơn, vì thuật ngữ này lại dẫn đến thuật ngữ khác, có khi đọc một hồi bạn lại quên mịa mục đích của mình là gì luôn. Vì vậy, trong Series này, tôi xin sử dụng một phương án trình bày khác. Theo đó, tôi sẽ tiếp cận ngay vấn đề chính là VPN Protocol và tập trung vào OpenVPN (sử dụng khi demo trong Series Hướng dẫn tạo VPN Server miễn phí từ A đến Z). Bằng cách này, bạn có thể kết nối các khái niệm lý thuyết bảo mật nhạt nhẽo với nội dung triển khai thực tế đầy sinh động (tôi nghĩ thế!). Ngoài ra, khi bắt gặp các thuật ngữ mới, nếu có thể diễn giải nhanh, tôi sẽ trình bày luôn. Nếu đụng nội dung quá phức tạp có thể “dắt mũi” người đọc vào mê hồn trận bảo mật, tôi (và bạn) cứ tạm vờ vịt như đã hiểu rõ đi nhé. Ngay khi kết thúc mạch chính của Series này, tôi sẽ sắp xếp trình bày các nội dung này kỹ hơn.
#1 Xác định loại VPN Protocol đang dùng
#1.1 Trường hợp bạn xài VPN Server miễn phí có sẵn trên Internet
Như tôi giới thiệu trong bài Giải ngố VPN – Phần 3: 4 điều phải biết về giải pháp sử dụng miễn phí VPN, bạn có thể sẽ thấy thông tin về VPN Protocol (PPTP và OpenVPN trong ví dụ bên dưới) cùng với các thông tin liên quan khác khi tìm kiếm trên Google từ khóa “free vpn server”.
Các thông tin này sau đó thể sẽ được dùng để bạn thiết lâp kết nối VPN trên máy của bạn như tôi demo trong bài Giải ngố VPN – Phần 2: 4 bước thiết lập nhanh VPN không cần cài phần mềm.
#1.2 Trường hợp bạn bạn xài VPN Server tính phí
Với trường hợp bạn chẳng có gì ngoài điều kiện thì mọi chuyện khá đơn giản, chỉ cần bơi vào trang của nhà cung cấp thì bạn sẽ có ngay thông tin về VPN Protocol. Trường hợp muốn chơi lầy thì bạn chỉ cần yêu cầu support cũng sẽ có người trả lời cho bạn luôn.
#1.3 Trường hợp bạn xài VPN Server “nhà trồng”
Với trường hợp này, bạn tự xây dựng và quản lý con VPN Server tương tự như Series Hướng dẫn tạo VPN Server miễn phí từ A đến Z tôi đã giới thiệu. Và khi đó hiển nhiên bạn đã biết mình đang sử dụng VPN Protocol nào (tôi dùng OpenVPN trong trường hợp bên dưới).
#2 Xác định các loại VPN Protocol thay thế để tăng độ bảo mật (nếu có)
Sau khi thực hiện Mục 1, lúc này bạn đã biết rõ loại VPN Protocol đang sử dụng. Bước tiếp theo, bạn cần xác định xem có những giải pháp thay thế nào khác có thể giúp bạn tăng độ bảo mật hay không. Trong nội dung bên dưới, tôi sẽ giới thiệu các thể loại protocol phổ biến hiện nay và thông tin đánh giá tương ứng.
#2.1 Point-to-Point Tunneling Protocol – PPTP
PPTP sử dụng giao thức mã hóa Microsoft Point-to-Point Encryption – MPPE tạo kết nối VPN qua dial-up network.
Điểm ngon:
– Dễ thiết lập;
– Gần như có sẵn trên tất cả nền tảng.
Điểm không ngon:
– Kém bảo mật (PPTP đã từng bị dính phốt khi bị khai thác un-encapsulated MS-CHAP v2 Authentication);
– NSA đã có thể xử gọn Protocol này rồi nên nếu bạn có định động chạm đến NSA thì đừng dại dột mà dùng nhé;
– Dễ bị firewall chặn vì yêu cầu sử dụng TCP port 1723 và GRE protocol;
#2.2 Layer 2 Tunneling Protocol/IPSec – L2TP/IPSec
L2TP/IPSec gần như có sẵn trên tất cả nền tảng nên việc cài đặt cũng ngon ăn như PTPP. L2TP bản thân nó sẽ không thực hiện việc mã hóa dữ liệu mà nó sẽ nhờ thằng đệ IPSec thực hiện (do vậy mới có tên L2TP/IPSec). L2TP/IPSec có thể sử dụng thuật toán mã hóa Triple Data Encryption Algorithm – 3DES hoặc Advanced Encryption Standard – AES nhưng thằng 3DES bị dính phốt Meet-in-the-middle và Sweet32 collision attack nên thực tế chắc hiếm người dám dùng.
Điểm ngon:
– Có thể được xem là bảo mật nếu không đụng đối thủ nặng ký như NSA;
– Dễ thiết lập;
– Gần như có trên tất cả các nền tảng;
– Có thể nhanh hơn OpenVPN do cho phép multi-threading;
Điểm không ngon:
– Nghe đồn NSA đã có thể phá (và làm suy yếu) protocol này;
– Khó hoạt động được với firewall kiểm soát chặt chẽ vì L2TP/IPSec chỉ chạy với một số port giới hạn.
#2.3 Secure Socket Tunneling Protocol – SSTP
SSTP là hàng độc quyền của Microsoft sử dụng SSL 3.0 (HTTPS với SSL 3.0 có thể bị POODLE attack. Dù chưa kết luận được SSTP có thể bị tấn công như HTTPS không nhưng thôi bạn tránh được thì tránh đi)
Điểm ngon:
– Được xem là rất bảo mật;
– Tích hợp hoàn toàn vào Windows và được Microsoft hỗ trợ (hiển nhiên rồi!);
– Có thể vượt đa số firewall như OpenVPN.
Điểm không ngon:
– Chỗ lấn cấn với SSL 3.0 nói trên;
– Hàng độc quyền của Microsoft (có dính phốt bắt tay với NSA nên bạn muốn hiểu sao thì hiểu).
#2.4 Internet Key Exchange verion 2 – IKEv2
IKEv2 là sản phẩm “song kiếm hợp bích của Microsoft và Cisco” hỗ trợ chuẩn cho Windows và iOS. Phiên bản mã nguồn mở cho Linux và các nền tảng khác hiện cũng đã được phát triển. IKEv2 là một phần của IPSec Protocol Suite (bảo mật thông tin bằng cách xử lý Security Association Attribute của IPSec) nên bạn cũng có thể thấy một số đại ca ghi IKEv2/IPSec (nhưng ông Microsoft gọi là VPN Connect).
Điểm ngon:
– Nhanh;
– Ổn định khi chuyển mạng hoặc kết nối lại (do hỗ trợ Mobility and Multihoming – MOBIKE, không phải MOTORBIKE đâu nhé). Do vậy đây có thể xem là lựa chọn chuẩn “cmn” mực cho các thể loại thiết bị di động;
– Bảo mật khi sử dụng AES;
– Dễ thiết lập (cho client thôi, chứ server thì cũng “sml”)
Điểm không ngon:
– Không hỗ trợ nhiều nền tảng;
– Thiết lập trên server cũng hơi mệt.
#2.5 OpenVPN
Nếu bạn không nhớ thì tôi xin nhắc lại đây chính là VPN Protocol được sử dụng trong Series Hướng dẫn tạo VPN Server miễn phí từ A đến Z đấy. OpenVPN sử dụng OpenSSL library, TLS protocol và thêm 1 mớ tả-pí-lù các công nghệ khác để cung cấp giải pháp VPN. Hiện tại thì OpenVPN được xếp vào nhóm kèo trên so với các protocol khác. OpenVPN hàng chính hãng chạy tốt nhất trên UDP port (cho tốc độ cao nhất) nhưng người dùng hoàn toàn có thể tùy chỉnh (còn nhớ lúc bạn chỉnh cấu hình TCP 443 vốn dành cho HTTPS trong bài Hướng dẫn tạo VPN Server miễn phí từ A đến Z – Phần 4: Tạo Private Key và ký Certificate cho VPN Server, VPN Client và cấu hình OpenVPN Server không?). Khi triển khai với Perfect Forward Secrecy – PFS, OpenVPN được cho là không có đối thủ (kể cả NSA).
Điểm ngon:
– Bảo mật thuộc top đầu (khi có PFS)
– Khả năng tùy chỉnh cấu hình cao (again, bạn còn nhớ việc chỉnh cấu hình mỏi tay với bài Hướng dẫn tạo VPN Server miễn phí từ A đến Z – Phần 4: Tạo Private Key và ký Certificate cho VPN Server, VPN Client và cấu hình OpenVPN Server không?)
– Mã nguồn mở cho phép audit “hội đồng”. Kết quả audit gần đây cũng chưa cho thấy lổ hổng nào nghiêm trọng ngoại trừ dạng Denial of Service – DoS attack lên OpenVPN Server (được vá từ bản OpenVPN 2.4.2);
– Có khả năng vượt firewall vì có thể tùy chỉnh port hoạt động.
Điểm không ngon:
– Không hỗ trợ mặc định cho các nền tảng mà sẽ cần cài third party software (cái này tôi cũng đã trình bày trong bài Hướng dẫn tạo VPN Server miễn phí từ A đến Z – Phần 6: Các bước tạo Client Config trên VPN Server và cài đặt phần mềm VPN trên VPN Client)
#3 Chốt hạ
Như đã nói trên, trong Series Hướng dẫn tạo VPN Server miễn phí từ A đến Z, tôi demo với OpenVPN protocol mà không nói gì nhiều về tùy chọn này. Việc đó có thể khiến bạn nghĩ tôi “chà đạp dư luận”, demo đại miễn sao cho con VPN Server nó chạy thôi (nghĩ thế cũng có đúng một phần!). Tuy nhiên, sau khi đọc đến đây, chắc bạn cũng hình dung sơ bộ “chỉ số sức mạnh” của thằng OpenVPN khi so với các phương án khác. Như vậy, nếu bạn xác định đang sử dụng là OpenVPN như tôi thì bạn đã xử lý tạm ổn 50% bài toán bảo mật kết nối VPN rồi đấy. Đối với 50% còn lại, việc thực hiện đòi hỏi bạn phài có thể can thiệp tinh chỉnh cấu hình con VPN Server.
Với trường hợp xài VPN Server miễn phí thì thôi bạn xác định bỏ qua 50% còn lại này đi nhé (bạn không tốn tiền cũng không tốn công thì có gì chơi nấy thôi). Với trường hợp sử dụng VPN Server trả phí, bạn có thể trao đổi với nhà cung cấp để đề nghị bộ phận kỹ thuật điều chỉnh cấu hình. Về lý thuyết thì có thể nhưng thật sự tôi không nghĩ phương án này khả thi lắm đâu. Nếu có phản hồi thì chắc hơn 95% bạn nhận được câu trả lời “Server đã tinh chỉnh cấu hình để tối ưu rồi anh ơi!”. Đúng! Chắc chắn đã tối ưu rồi, nhưng mà là tối ưu cho nhà cung cấp để đáp ứng đa số khách hàng chứ không phải cho 1 cá nhân đơn lẻ như bạn. Với trường hợp cuối cùng, bạn thuộc nhóm dùng xài VPN Server “nhà trồng” thì đây là lúc mà công sức bạn bỏ ra khi tự tay xây dựng con VPN Server được đền đáp đấy! Trong những kỳ tới tôi sẽ bàn về việc sử dụng “đặc quyền” khi tự quản lý VPN Server để có thể đẩy độ bảo mật của kết nối VPN lên hết mức có thể.
2 thoughts on “Bảo mật kết nối VPN – Phần 1: Đặc quyền khi tự quản lý VPN Server”