NỘI DUNG
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 wg-quick@wg0.service
[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} wg-quick@wg0.service 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
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
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
Tiếp theo bạn chọn Apple Config để áp dụng cho User
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.
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.
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
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é.
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
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.
- Trang kiểm tra IP: viewip.info
Chúc bạn thực hiện thành công.