VPN

Thiết lập máy chủ WireGuard VPN với giao diện

9
0

gui WireGuard

Cũng giống như OpenVPN hay IPSec, WireGuard là một hệ thống VPN miễn phí giúp bạn thiết lập một kết nối mã hóa giữa máy client và server thông qua kết nối Internet. WireGuard được hoạt động ở layer 3, được thiết kế như một virtual network interface của Kernel cho Linux. WireGuard được sinh ra nhằm mục đích thay thế cho IPSec trong hầu hết các trường hợp sử dụng, và dựa vào các giải pháp dựa trên TLS như OpenVPN, trong khi WireGuard an toàn hơn, nhanh hơn, và dễ sử dụng hơn.

Chuẩn bị

  • Máy chủ Linux (Ở đây mình sử dụng Ubuntu 20.04 được cung cấp bởi AZDIGI)
  • IP Public

Các bước Thiết lập máy chủ WireGuard VPN với giao diện

Bước 1: Cập nhật và cài đặt package

apt update && apt install -y wireguard curl tar
cd /etc/wireguard

Bước 2: Mở PORT Firewall

Ở đây các bạn hãy mở UDP PORT 51820, máy chủ Ubuntu mình sử dụng UFW nên sẽ sử dụng lệnh sau để mở.

ufw allow 51820/udp

Bước 3: Kích hoạt IP forwarding

Ở đây bạn cần chuyển tiếp IP đảm bảo rằng tất cả các packets từ giao diện WireGuard đều được chuyển tiếp. Bạn có thể mở file /etc/sysctl.conf lên và thêm vào hoặc sử dụng trực tiếp lệnh echo để thêm. Sau đó nhập sysctl -p để áp dụng.

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

Bước 4: Tạo script WireGuard UI

Bước này bạn tạo script cho Systemd sử dụng để khởi động giao diện người dùng WureGuard và lưu trữ cơ sở dữ liệu trong thư mục /etc/wireguard/db/

Lưu ý: Vì vấn đề bảo mật dòng -bind-address bạn cần thay đổi bằng IP của máy chủ WureGuard

cat <<EOF > /etc/wireguard/start-wgui.sh
#!/bin/bash
cd /etc/wireguard
./wireguard-ui -bind-address 0.0.0.0:5000
EOF

Phân quyền script vừa tạo.

chmod +x start-wgui.sh

Bước 5: Cài đặt WireGuard UI

Ở đây mình sẽ mượn WireGuard UI tại đây để dùng cho bài hướng dẫn này.

  • Tạo file dịch vụ wgui-web.service
cat <<EOF > /etc/systemd/system/wgui-web.service
[Unit]
Description=WireGuard UI
 
[Service]
Type=simple
ExecStart=/etc/wireguard/start-wgui.sh
 
[Install]
WantedBy=multi-user.target
EOF
  • Tải giao diện WireGuard UI

Bạn hãy copy các tập lệnh này và chạy. Hoặc tạo file mới và dán vào từ #!/bin/bash

cat <<EOF > /etc/wireguard/update.sh
#!/bin/bash
 
VER=$(curl -sI https://github.com/ngoduykhanh/wireguard-ui/releases/latest | grep "location:" | cut -d "/" -f8 | tr -d 'r')
 
echo "downloading wireguard-ui $VER"
curl -sL "https://github.com/ngoduykhanh/wireguard-ui/releases/download/$VER/wireguard-ui-$VER-linux-amd64.tar.gz" -o wireguard-ui-$VER-linux-amd64.tar.gz
 
echo -n "extracting "; tar xvf wireguard-ui-$VER-linux-amd64.tar.gz
 
echo "restarting wgui-web.service"
systemctl restart wgui-web.service
EOF

Bây giờ bạn có thể chạy tập lệnh trên để cập nhật giao diện WireGuard. Quá trình tải xuống sẽ mất ít phút.

chmod +x /etc/wireguard/update.sh
cd /etc/wireguard; ./update.sh

Bước 6: Tạo file cấu hình systemd WireGuard

  • Tạo file wgui.service
cat <<EOF > /etc/systemd/system/wgui.service
[Unit]
Description=Restart WireGuard
After=network.target
[Service]
Type=oneshot
ExecStart=/bin/systemctl restart [email protected]
[Install]
RequiredBy=wgui.path
EOF
  • Tạo file wgui.path
cat <<EOF > /etc/systemd/system/wgui.path
[Unit]
Description=Watch /etc/wireguard/wg0.conf for changes
[Path]
PathModified=/etc/wireguard/wg0.conf
[Install]
WantedBy=multi-user.target
EOF

Bước 7: Kích hoạt và chạy dịch vụ

touch /etc/wireguard/wg0.conf
systemctl enable wgui.{path,service} [email protected] wgui-web.service
systemctl start wgui.{path,service}

Bước 8: Mở WireGuard UI và cấu hình

Bây giờ bạn hãy truy cập trình duyệt bằng http://IP-Server:5000 vởi user và mật khẩu mặc định đều là admin/admin

Tại giao diện bạn hãy truy cập vào Global Settings và kiểm tra ở phần sau

  • Endpoint Address xem IP có đúng hay chưa.
  • DNS Server mặc định DNS của CloudFlare 1.1.1.1 bạn có thể thêm vào DNS của Google hoặc máy chủ DNS khác
CleanShot 2022 05 23 at 22.40.52@2x

Tiếp theo bạn truy cập vào Tab Wireguard Server và nhập vào các thông số sau

  • Post Up Script: để các máy khách VPN cũng có thể truy cập Internet
iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  • Post Down Script
iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
CleanShot 2022 05 23 at 22.45.43@2x

Bước 9: Tạo Wireguard Clients

Để tạo user VPN bạn tuỷ cập vào Wireguard Clients => New Client=> Nhập vào các thông tin và chọn Submit

CleanShot 2022 05 23 at 22.48.10@2x

Tiếp theo bạn chọn Apple Config để áp dụng cho User

CleanShot 2022 05 23 at 22.49.08@2x

Bước 10: Thiết lập sử dụng WireGuard

1. Thiết lập sử dụng WireGuard trên máy tính

Trước khi thiết lập thì bạn cần phải có ứng dụng WireGuard. Và bạn có thể tải WireGuard từ trang chủ của WireGuard về với các nền tảng hệ điều hành.

  • Download ứng dụng WireGuard trên Windows tại đây
  • Download ứng dụng WireGuard trên MacOS tại đây

Sau khi tải và cài đặt ứng dụng phần mền WireGuard trên máy client xong. bạn click vào dấu + sau đó chọn Import Tunnel(s) from File để thêm cấu hình.

anh 60

Và để sử dụng bạn chỉ cần click vào

  • Activate: Kích hoạt sử dụng
  • Deactivate: Ngừng kích hoạt sử dụng
CleanShot 2022 05 23 at 22.52.36

2. Thiết lập sử dụng WireGuard trên di động

WireGuard hỗ trợ cả trên các thiết bị di động. Để tải về bạn truy cập vào link tương ứng bên dưới nhé.

  • Download ứng dụng WireGuard trên AppStore tại đây
  • Download ứng dụng WireGuard trên CHplay tại đây
anh 61 1024x494 1

Sau đó bạn mở ứng dụng WireGuard trên di động và chọn vào dấu +. Sau đó bạn chọn các lựa chọn cấu hình như:

  • Create from QR code: Quét mã QR
  • Create from file or archive: Nhập file cấu hình
anh 62 710x1536 1

Sau khi kết nối hoàn tất. Bây giờ mình sẽ truy cập vào Internet để kiểm tra thử có hoạt động hay không. Và mình kiểm tra xem IP có chính xác hay không.

CleanShot 2022 05 23 at 22.57.37@2x

Chúc bạn thực hiện thành công.

Đỗ Trung Quân
WRITTEN BY

Đỗ Trung Quân

Nguồn nội dung này đến từ Website DoTrungQuan.info

Trả lời