Wireguard VPN trên OpenWrt

Bài viết này giả sử bạn đã có một server chạy Wireguard và một file cấu hình Wireguard cho Client đã hoạt động.

Cài đặt WireGuard trên OpenWRT

  • Cài đặt gói để OpenWRT hỗ trợ WireGuard

SSH vào thiết bị OpenWRT và chạy những lệnh sau để cài đặt Wireguard:

opkg update
opkg install luci-proto-wireguard luci-app-wireguard wireguard kmod-wireguard wireguard-tools
reboot

Cấu hình WireGuard trong OpenWRT

  • Cấu hình WireGuard interface trong OpenWRT sử dụng LuCI

Vào LuCI và đến mục Network » Interfaces » Add New Interface

Đặt tên interface là WIREGUARD hoặc một tên nào đó mà bạn chọn, chọn Protocol WireGuard VPN và nhấn Submit để bắt đầu cấu hình một interface mới.

Lúc này bạn cần mở file cấu hình của client và thêm những thông tin sau:

  • General Settings
Cấu hình chung WireGuard trên OpenWRT

Cấu hình chung WireGuard trên OpenWRT

  • Peers
Cấu hình Peers WireGuard trên OpenWRT

Cấu hình Peers WireGuard trên OpenWRT

Lưu ý quan trọng: Mục Route Allowed IPs phải tick dấu tick

  • Firewall
Cấu hình tường lửa cho Wireguard trên OpenWRT

Cấu hình tường lửa cho Wireguard trên OpenWRT

Sau đó khởi động lại OpenWRT ở System » Reboot hoặc lệnh reboot trong SSH

Cập nhật giờ hệ thống trong OpenWRT

Mỗi lần cúp điện, WireGuard tự ngắt và lúc đầu tôi cũng không xác định được nguyên nhân từ đâu, cứ nghĩ do bản ROM còn ở dạng Beta nên không ổn định. Để Wireguard hoạt động trở lại sau khi cúp điện tôi phải login vào router và đồng bộ giờ một cách thủ công.

Sau khi tìm hiểu nguyên nhân trên mạng tôi biết rằng do khi cúp điện và có điện trở lại router không thể đồng bộ giờ hệ thống của nó với NTP do WireGuard được kích hoạt trước. Để giải quyết vấn đề này tôi đã tìm được câu trả lời ở link sau..

cat << "EOF" >> /etc/crontabs/root
@reboot date -s 2030-01-01; /etc/init.d/sysntpd restart
EOF
uci set system.@system[0].cronloglevel="9"
uci commit system
/etc/init.d/cron restart

Đọc thêm:

https://casept.github.io/post/wireguard-server-on-openwrt-router/

https://forum.openwrt.org/t/initiate-wireguard-after-ntp-success/14751/52

https://openwrt.org/docs/guide-user/services/vpn/wireguard/client

https://openwrt.org/docs/guide-user/services/vpn/wireguard/extras#race_conditions