Site icon Knowledge Base| Kiến thức Dịch vụ P.A Việt Nam

Wireguard là gì? Hướng dẫn cài đặt WireGuard

WireGuard hiện tại là 1 giải pháp VPN chủ yếu tập trung vào bảo mật. Theo đó WireGuard đang sử dụng những giao thức mã hóa cũng như những thuật toán nhằm bảo vệ dữ liệu. Với khả năng kết nối tích tắc, mã hoá rõ ràng và sử dụng mật mã hiện đại, Wireguard ngày càng trở nên phổ biến, thậm chí là được đưa vào Linux kernel 5.6.

WireGuard là gì?

Wireguard là một giao thức VPN (Virtual Private Network) nguồn mở phổ biến tập trung chủ yếu vào bảo mật và tốc độ kết nối bằng mật mã hiện đại giúp người dùng có thể thông qua internet để thiết lập một kết nối mã hoá giữa client và server. Tính đơn giản và dễ dàng sử dụng cho tất cả mọi người đối với cả những người không chuyên về kỹ thuật được xác định chính là nguyên nhân ban đầu giúp Wireguard trở nên ngày càng phổ biến.

Hiện tại nó đang sử dụng những giao thức mã hóa cũng như những thuật toán nhằm bảo vệ dữ liệu.

 

Wireguard là một giao thức VPN (Virtual Private Network) chủ yếu tập trung vào bảo mật

Cơ chế mã hóa của WireGuard :

WireGuard đã sử dụng ChaCha20 để có thể mã hóa đối xứng cùng với Polu1305 dành cho message authentication. Theo đó sự kết hợp này sẽ đạt được hiệu quả hơn so với AES trên những kiến trúc CPU được nhúng và hoàn toàn không có khả năng giúp tăng tốc về phần cứng mật mã (hay cryptographic hardware acceleration) và Curve25519 dành cho Diffie-Hellman (ECDH). Hoặc BLAKE2s dùng để hashing, nhanh hơn so với SHA-3 cũng như 1.5-RTT dựa vào nền tảng Noise. Bên cạnh đó nó cũng gồm có tính năng bảo vệ khỏi tình trạng giả mạo, replay attack và từ chối dịch vụ.

Tương tự như IPsec và OpenVPN, Wireguard cũng là một hệ thống VPN có khả năng thiết lập một kết nối được mã hoá giữa một máy chủ được đặt tại vị trí bất kỳ và một máy khách (máy tính cá nhân của bạn). Bạn chỉ cần gửi yêu cầu của mình đến máy chủ để máy chủ chuyển tiếp yêu cầu này đến với trang web mà bạn muốn truy cập. Sau đó, trang web sẽ gửi thông tin trở lại máy chủ và máy chủ sẽ truyền thông tin đó đến máy tính cá nhân của bạn.

 

 

 

Ưu điểm và hạn chế của Wireguard :

– Ưu điểm:

+ Wireguard có mã nguồn mở với kích cỡ chỉ bằng khoảng 1% so với công nghệ cạnh tranh khác (chưa đến 4000 dòng code). Chính điều này cho thấy rằng,

+ Wireguard được thiết kế để cung cấp những cải tiến lớn về hiệu suất cho VPN. Sự kết hợp của giao thức Wireguard và các nguyên bản mật mã đặc biệt giúp cho mạng trở nên an toàn và nhanh chóng. Với Wireguard,

+ Wireguard có khả năng thiết lập và mã hoá thông tin liên lạc thay vì phải triển khai tất cả các giao thức có trong hệ thống. Điều này giúp đảm bảo khả năng hoạt động tốt và tính bảo mật cho hệ thống.

+ Wireguard hoạt động tốt trên nhiều nền tảng khác nhau như Windows, Mac OS, Android, iOS và Linux mặc dù nó vẫn xuất hiện một chút chậm trễ trong việc triển khai hoạt động đầy đủ.

+ Wireguard duy trì tốt tính bảo mật thông qua tính năng thiết lập văn bản. Nó có thể được vá và cập nhật ngay khi một vấn đề được phát giác trong chính giao thức của nó. So với quy trình phức tạp là hoán đổi giao thức từng phần một của những VPN cũ thì Wireguard bảo mật tốt hơn.

+ Điều thay đổi đáng chú ý nhất của Wireguard đối với người dùng là khả năng mang lại vận tốc kết nối và tính ổn định cho hệ thống bởi hệ thống mã hoá của giải pháp này là dựa vào việc trao đổi key. Điều này giúp hệ thống dựa trên Wireguard nhanh chóng hơn nhiều.

– Nhược điểm:

+ Wireguard được xây dựng với mục đích để bảo mật chứ không phải là vì quyền riêng tư. Do đó, tuy Wireguard cung cấp một giao thức giao tiếp và đi kèm một vài biện pháp bảo mật thích hợp nhưng vẫn còn rất nhiều thứ cần được thực hiện bởi những người chịu trách nhiệm vận hành máy chủ.

+ Mọi giao thức VPN đều biết nơi gửi dữ liệu nhưng Wireguard thường tốn nhiều thời gian cho việc quên đi một IP được kết nối trong khi hầu hết các doanh nghiệp muốn xoá đều đặn các địa chỉ và không muốn chúng được ghi lại.

Hướng dẫn cài đặt WireGuard :

Quá trình cài đặt Wireguard VPN Server có 3 bước :

Bạn có thể tắt SElinux & Firewalld (trên CentOS) để quá trình cài đặt và sử dụng dễ dàng hơn.

# Tắt SElinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0

# Tắt Firewalld
systemctl stop firewalld
systemctl disable firewalld

Cài đặt Wireguard package : 

# Dành cho CentOS 7
yum install epel-release elrepo-release -y
yum install yum-plugin-elrepo -y
yum install kmod-wireguard wireguard-tools -y

# Dành cho CentOS 8
yum install elrepo-release epel-release -y
yum install kmod-wireguard wireguard-tools -y

# Dành cho Ubuntu Server
apt install wireguard -y

Load module wireguard vào kernel :

modprobe wireguard

Enable ip_forward cho Kernel :

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -w net.ipv4.ip_forward=1
sysctl -p

Phần cài đặt các pakage cho Wireguard VPN Server đến đây là hoàn tất, bước tiếp theo cần tạo ra các file config tương ứng cho client và server để có thể bắt đầu sử dụng.

Hướng dẫn config Wireguard :

Cách 1 : Chúng ta có thể install Wireguard thủ công :

Wireguard hoạt động theo mô hình public_key/private_key. Do đó ta cần:

Tạo server keys:

cd /etc/wireguard/keys/
wg genkey | tee server_private.key | wg pubkey > server_public.key

Tạo client keys:

cd /etc/wireguard/keys/
wg genkey | tee client_private.key | wg pubkey > client_public.key

Sau khi tạo xong bộ key cần thiết, ta tiến hành tạo file config cho Wireguard VPN Server và Wireguard VPN Client. Ví dụ, ta sử dụng các thông số như sau cho mô hình VPN của mình:

Tạo server config:

KEYS_DIR="/etc/wireguard/keys"
cd /etc/wireguard/

# Lấy server private key & client public key đã tạo ở trước trên
server_pri_key=$(cat "${KEYS_DIR}/server_private.key")
client_pub_key=$(cat "${KEYS_DIR}/client_public.key")

# Tạo file config wg0.conf cho server
cat > /etc/wireguard/wg0.conf <<EOF
[Interface]
PrivateKey =  $server_pri_key
Address = 172.30.0.254/24
SaveConfig = true
ListenPort = 99999
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -s 172.30.0.0/24 -o ens192 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -s 172.30.0.0/24 -o ens192 -j MASQUERADE

[Peer]
PublicKey = $client_pub_key
AllowedIPs = 172.30.0.2

EOF

Đến đây, đã hoàn tất tạo file config cho server tại vị trí: /etc/wireguard/wg0.conf. Khởi chạy dịch vụ Wireguard VPN Server:

wg-quick up wg0

Tạo client config:

KEYS_DIR="/etc/wireguard/keys"
cd /etc/wireguard/

# Lấy server public key & client private key đã tạo ở trước trên
server_pub_key=$(cat "${KEYS_DIR}/server_public.key")
client_pri_key=$(cat "${KEYS_DIR}/client_private.key")

# Tạo file client.conf
cat > "$KEYS_DIR/client.conf" <<EOF
[Interface]
PrivateKey = $client_pri_key
Address = 172.30.0.254/24
DNS = 1.1.1.1, 8.8.8.8

[Peer]
PublicKey = ${server_pub_key}
Endpoint = 112.213.89.3:99999
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21
EOF

Đến đây, trên server đã tạo ra file /etc/wireguard/keys/client.conf. Để sử dụng, hãy copy file này về máy cần dùng VPN và import vào ứng dụng Wireguard trên thiết bị đó là đã có thể connect.

Cách 2 : Sử dụng script để cài đặt :

Đầu tiên là SSH vào VPS với tài khoản root và cài đặt Wireguard VPN với lệnh sau :

wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh

Nếu VPS / Server của bạn có nhiều IP mạng, nhớ chọn IP Public của VPS.

Which IPv4 address should be used?
1) 112.213.89.3
2) 172.30.0.1
IPv4 address [1]: 1

Tiếp theo nhập thông tin theo yêu cầu của script cài đặt.

## Chọn port, bấm Enter để giữ nguyên port mặc định 51820
What port should WireGuard listen to?
Port [51820]:

## Chọn tên
Enter a name for the first client:
Name [client]: pavietnam.vn

## Chọn DNS Server
Select a DNS server for the client:
1) Current system resolvers
2) Google
3) 1.1.1.1
4) OpenDNS
5) Quad9
6) AdGuard
DNS server [1]: 2

WireGuard installation is ready to begin.
Press any key to continue...
## Bấm nút bất kỳ để tiếp tục

Đợi khoảng vài phút cho script cài đặt và cấu hình Wireguard VPN tự động cho bạn. Sau khi hoàn tất, bạn sẽ nhận được thông báo như sau.

Tạo thêm tài khoản client :

wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh

Hệ thống sẽ tự động nhận ra WireGuard đã được cài đặt và hiện thông báo như dưới đây.

Để xem lại QR Code của tài khoản đã tạo bạn dùng lệnh sau :

qrencode -t UTF8 < pavietnam_vn.conf

Các bạn thay thế pavietnam_vn.conf bằng tên file tương ứng với tài khoản bạn đã tạo trước đó. File này được lưu ở thư mục /root.

Cài đặt WireGuard Client :

Để kết nối với Wireguard Server vừa tạo, bạn cần tải Wireguard Client trên thiết bị cần sử dụng. Wireguard cung cấp client cho mọi hệ điều hành phỏo biến: iOS, Android, Windows, Linux, Mac OS,… Bạn có thể tham thêm khảo hướng dẫn ở đây: WireGuard install.

Các bạn có thể cài WireGuard client trên iOS / Android thông qua App Store / Play Store. Sau đó bạn thêm cấu hình WireGuard bằng cách chọn Create from QR Code và scan QR Code nhận được ở bước cài đặt trên là được.

Tổng kết :

Thực hiện các bước như hướng dẫn trên thì các bạn đã cài đặt thành công WireGuard VPN.

Trong quá trình cài đặt phalcon nếu có vấn đề lỗi phát sinh, vui lòng gửi yêu cầu về kythuat@pavietnam.vn để được hỗ trợ kiểm tra và xử lý.

Xem thêm các hướng dẫn khác về VPS tại đây.

P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng :
Cloud Server
Cloud Server Pro
Máy Chủ Riêng

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

 

5/5 - (2 bình chọn)
Exit mobile version