Từ Code đến System

Linux

Hướng dẫn cài đặt giải pháp VPN Wireguard Easy với Ubuntu 20.04

WireGuard là một giải pháp VPN mã nguồn mở mới nhất, miễn phí và đang được xem VPN là nhanh nhất, an toàn nhất và dễ sử dụng nhất.

Với thiết kế đơn giản và tối ưu hóa hiệu suất, WireGuard cung cấp tốc độ truyền dữ liệu cao hơn và độ trễ thấp hơn so với các giải pháp VPN truyền thống khác. Ngoài ra, Wireguard cũng được xây dựng với các tính bảo mật cao, bao gồm mã hóa đường truyền, chứng thực và quản lý khóa độc lập.

Hiện tại, WireGuard đã hỗ trợ hấu hết các hệ điều hành phổ biến như Linux, macOS, Windows, Android và iOS.

Với những ưu điểm này, WireGuard đang trở thành một giải pháp VPN phổ biến trong cộng đồng người dùng Internet.

wg-easy là giải pháp nguồn mở với mục tiêu cung cấp giao diện trực quan hỗ trợ người quản trị nhanh chóng tạo ra các client.

Chuẩn bị

EC2 – Server VPN WireGuard

  • OS: Ubuntu 20.04
  • Cấu hình: t3.micro – 2 CPU / 1 GB RAM / 8 GB Disk
  • IP: 54.254.248.50 (IP Public – ens3)

Và thực hiển trỏ domain với bản ghi A

  • Trỏ bản ghi A – domain wg101.devopsviet.com tới IP Server 54.254.248.50

Tại máy tính của bạn, cài đặt Client VPN (ở bài lab mình sử dụng Windows 10), thực hiện download client tại

Phần 1: Cài đặt Docker và Docker Compose

Cài đặt Docker

sudo su
apt -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
apt -y install docker-ce

Cài đặt Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Kiểm tra

systemctl status docker
docker-compose --version

Kết quả

Cài đặt docker và docker compose thành công

Phần 2: Cài đặt Wireguard Easy với Docker Compose

Bước 1: Cấu hình Docker Compose

Tạo thư mục

mkdir -p /root/vpn-wireguard
cd /root/vpn-wireguard

Tạo File Docker-compose

vi /docker-compose.yml

Nội dung

version: "3.8"

services:
  wg-easy:
    environment:
      - WG_HOST=wg101.devopsviet.com
      - PASSWORD=Demo@2023
    image: weejewel/wg-easy
    container_name: wg-easy
    hostname: wg-easy
    volumes:
      - ~/.wg-easy:/etc/wireguard
    ports:
      - "51820:51820/udp"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

  nginx:
    image: weejewel/nginx-with-certbot
    container_name: nginx
    hostname: nginx
    volumes:
      - ~/.nginx/servers/:/etc/nginx/servers/
      - ./.nginx/letsencrypt/:/etc/letsencrypt/
    ports:
      - "80:80/tcp"
      - "443:443/tcp"
    restart: unless-stopped

Bước 2: Cấu hình HTTPS cho giao diện

Tạo thư mục

mkdir -p ~/.nginx/servers

Nội dung

vi ~/.nginx/servers/wg-easy.conf:

server {
    server_name wg101.devopsviet.com;

    location / {
        proxy_pass http://wg-easy:51821/;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
    }
}

Bước 3: Khởi tạo VPN Server

cd /root/vpn-wireguard
docker-compose up -d

Kết quả

Bước 4: Cấu hình chứng chỉ

Thực hiện

docker exec -it nginx /bin/sh
certbot --nginx --non-interactive --agree-tos -m [email protected] -d wg101.devopsviet.com
nginx -s reload
exit

Kiểm tra

  • Truy cập website: https://wg101.devopsviet.com/

Kết quả

Nhập mật khẩu: Demo@2023

Phần 3: Tạo và kết nối Server VPN Wireguard

Bước 1: Tạo client

  • Chọn New Client
  • Nhập Tên: democlient
  • Chọn Create

Bước 2: Tải Client và kết nối VPN

  • Chọn Download và save client tại thư mục chỉ định
  • Thực hiện Import vào Wireguard Client (Windows)
  • Chọn Active

Kết quả

Bước 3: Kiểm tra kết nối VPN

Truy cập Google và search what is my ip

  • Đã kết nối VPN thành công, hiện tại máy tính của bạn đã đi qua Server Wireguard VPN để kết nối internet

Tới đây mình đã hoàn thành hướng dẫn, chúc các bạn thành công.

Nguồn

WireGuard: fast, modern, secure VPN tunnel

GitHub – wg-easy/wg-easy: The easiest way to run WireGuard VPN + Web-based Admin UI.

Leave a Reply