- 1 Mã độc là gì? Phân loại, đặc tính và cách phòng tránh
- 2 DDos là gì? Dấu hiệu, xử lý và cách phòng chống hiệu quả
- 3 Phishing là gì? Nhận diện và phòng chống tấn công lừa đảo trực tuyến
- 4 DNS Sinkhole là gì? Ứng dụng và cách dùng kỹ thuật DNS Sinkhole
- 5 OAuth 2.0 là gì? Ủy quyền truy cập và đăng nhập bằng Google/Facebook
- 6 Trojan là gì? Những thông tin cơ bản về mã độc Trojan
- 7 Zero Trust Là Gì? Mô Hình Bảo Mật 'Không Tin Tưởng Ai'
- 8 VPN là gì? Mạng riêng ảo, WireGuard và OpenVPN
- 9 MFA Là Gì? So Sánh MFA vs 2FA và Các Phương Thức Xác Thực
- 10 Tường lửa là gì? Vai trò và chức năng trong bảo mật mạng
- 11 SQL Injection là gì? Tấn công cơ sở dữ liệu và cách phòng chống
- 12 Ransomware là gì? Mã độc mã hóa tống tiền và cách phòng chống
VPN (Virtual Private Network) là công nghệ bảo mật mạng quan trọng giúp nhân viên làm việc từ xa, bảo vệ kết nối trên WiFi công cộng, và kết nối các văn phòng chi nhánh. Bài viết giải thích cơ chế hoạt động, so sánh WireGuard với OpenVPN, và hướng dẫn cấu hình thực tế.
Cần giải pháp dữ liệu cho doanh nghiệp?
AlgoData đồng hành cùng doanh nghiệp về data engineering, phân tích & AI từ 2019.
VPN là gì?

VPN (Virtual Private Network) tạo một đường hầm mã hóa (encrypted tunnel) giữa thiết bị của bạn và VPN server. Thay vì traffic đi thẳng ra internet và lộ IP thực, mọi dữ liệu đều được mã hóa và chỉ giải mã ở đầu VPN server.
Cơ chế hoạt động:
- Thiết bị tạo kết nối mã hóa đến VPN server
- Mọi traffic được đóng gói và mã hóa bên trong tunnel
- VPN server giải mã và forward request đến đích thực
- Response đi ngược lại theo cùng tunnel
- Website đích chỉ thấy IP của VPN server
Tại sao cần VPN?
- Remote work: Nhân viên làm việc từ xa cần truy cập tài nguyên nội bộ (file server, database, internal tools)
- Public WiFi: Quán cà phê, sân bay — WiFi không mã hóa, dễ bị nghe lén
- Privacy: Ẩn IP thực khỏi website và ISP
- Site-to-site: Kết nối văn phòng chi nhánh với nhau
Các giao thức VPN

WireGuard (Khuyên dùng)
Protocol hiện đại nhất, được thiết kế từ đầu cho hiệu năng và bảo mật:
- ~4,000 dòng code (dễ audit, ít bug surface)
- Dùng UDP — nhanh hơn TCP, kém tin cậy hơn nhưng ổn với VPN
- Tích hợp vào Linux kernel từ phiên bản 5.6 (2020)
- Cryptography state-of-the-art: Curve25519, ChaCha20, Poly1305
- Reconnect cực nhanh khi đổi mạng (roaming)
OpenVPN
Giao thức lâu đời và trưởng thành nhất:
- ~100,000 dòng code — phức tạp hơn, nhiều tính năng hơn
- Hỗ trợ cả TCP và UDP
- Có thể chạy trên port 443 (giống HTTPS) để bypass firewall nghiêm ngặt
- Được hỗ trợ trên hầu hết nền tảng
- Phổ biến trong enterprise
IPsec/IKEv2
- Chuẩn công nghiệp, tích hợp sẵn vào iOS/Android/Windows
- IKEv2 đặc biệt tốt cho mobile: reconnect nhanh khi chuyển mạng (WiFi ↔ 4G)
- Phổ biến trong corporate VPN (Cisco AnyConnect, Juniper)
L2TP/PPTP (Lỗi thời)
- PPTP: Không dùng — đã bị break từ 1999, không an toàn
- L2TP/IPsec: Vẫn dùng được nhưng WireGuard tốt hơn nhiều
PPTP sử dụng MS-CHAPv2 đã bị crack từ năm 1999. Nếu hệ thống đang dùng PPTP, hãy migrate sang WireGuard hoặc OpenVPN ngay — traffic PPTP có thể bị giải mã offline chỉ trong vài giờ bằng công cụ như Asleap hoặc CloudCracker.
Cấu hình WireGuard thực tế
Cài đặt WireGuard trên Ubuntu:
1# Cài đặt
2apt update && apt install wireguard
3
4# Tạo cặp key (server)
5wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
6
7# Tạo cặp key (client)
8wg genkey | tee client_private.key | wg pubkey > client_public.key
Server config — /etc/wireguard/wg0.conf:
1[Interface]
2Address = 10.0.0.1/24
3PrivateKey = <server-private-key>
4ListenPort = 51820
5
6# Bật NAT để client có internet access
7PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
8PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
9
10[Peer]
11# Client 1
12PublicKey = <client-public-key>
13AllowedIPs = 10.0.0.2/32
Client config:
1[Interface]
2Address = 10.0.0.2/24
3PrivateKey = <client-private-key>
4DNS = 1.1.1.1
5
6[Peer]
7PublicKey = <server-public-key>
8Endpoint = 203.0.113.1:51820
9AllowedIPs = 0.0.0.0/0 # Route tất cả traffic qua VPN
10PersistentKeepalive = 25 # Giữ connection sống qua NAT
AllowedIPs = 0.0.0.0/0 (full tunnel) route toàn bộ traffic qua VPN — mọi request đều qua server. Nếu chỉ cần truy cập mạng nội bộ công ty, dùng split tunnel thay thế: AllowedIPs = 10.0.0.0/8, 192.168.0.0/16 — traffic đến internet đi thẳng, chỉ traffic đến private range mới qua VPN. Split tunnel giảm tải cho VPN server và cải thiện tốc độ đáng kể.
Khởi động WireGuard:
1# Bật WireGuard interface
2wg-quick up wg0
3
4# Kiểm tra trạng thái
5wg show
6
7# Bật tự động khi boot
8systemctl enable wg-quick@wg0
9
10# Xem traffic stats
11wg show wg0 transfer
Site-to-site vs Remote Access VPN

Site-to-site VPN — kết nối hai mạng cố định:
- Không cần cài VPN client trên từng máy nhân viên
- Router/firewall của cả hai văn phòng tạo tunnel với nhau
- Nhân viên văn phòng A có thể truy cập resource của văn phòng B như thể cùng mạng
Remote Access VPN — nhân viên kết nối từ xa:
- Mỗi nhân viên cài VPN client (WireGuard, OpenVPN, Cisco AnyConnect...)
- Kết nối đến VPN gateway của công ty
- Sau khi kết nối, có thể truy cập tất cả resource nội bộ
Chọn loại nào?
- Văn phòng cố định ↔ data center: Site-to-site
- Work from home, remote team: Remote Access
- Kết hợp cả hai: common trong enterprise lớn
VPN vs Proxy
| Tiêu chí | VPN | Proxy |
|---|---|---|
| Mã hóa | Luôn luôn | Tùy loại (HTTP proxy = không) |
| Scope | Toàn bộ OS | Một ứng dụng |
| DNS | Qua VPN (chống leak) | App quyết định |
| Tốc độ | Chậm hơn một chút | Nhanh hơn |
| Setup | OS-level | Per-app config |
| Use case | Remote work, full privacy | Web dev, bypass, debug |
Dùng VPN không đồng nghĩa với ẩn danh hoàn toàn. Hai rủi ro phổ biến: (1) DNS leak — nếu DNS query không đi qua VPN tunnel, ISP vẫn thấy bạn truy cập domain nào; kiểm tra tại dnsleaktest.com. (2) WebRTC leak — trình duyệt có thể lộ IP thực qua WebRTC ngay cả khi VPN đang bật; tắt WebRTC trong browser hoặc dùng extension như uBlock Origin. Luôn bật kill switch để ngắt internet nếu VPN mất kết nối đột ngột.

