Bookmark

Chạy OpenVPN Access Server bằng Docker

OpenVPN Access Server là giải pháp VPN tự host có giao diện quản trị web. Bản này giữ cổng, volume và thứ tự thao tác của nguồn, nhưng tách lệnh và giải thích lại để có thể triển khai an toàn hơn.

Youtube video player

Cài Docker trên Linux

Đăng nhập Linux bằng tài khoản có quyền sudo, rồi chạy các lệnh sau. Tutorial gốc dùng apt-key; trên bản phân phối mới, hãy đối chiếu thêm tài liệu Docker chính thức vì lệnh này đã bị đánh dấu deprecated.

1
2
3
4
5
6
7
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -y
curl -fsSL https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release)/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/$(awk -F'=' '/^ID=/{ print $NF }' /etc/os-release) $(lsb_release -cs) stable"
sudo apt install docker-ce docker-compose containerd.io -y
sudo systemctl enable docker && sudo systemctl start docker
sudo usermod -aG docker $USER
su - $USER

Chạy container OpenVPN Access Server

Tạo thư mục dữ liệu rồi khởi chạy container. NET_ADMIN cần thiết cho chức năng VPN, vì vậy không nên chạy container này trên host không được kiểm soát.

1
2
3
4
5
6
7
8
mkdir ~/docker/openvpn-as -p
docker run -d --name openvpn-as \
  --cap-add=NET_ADMIN \
  -p 943:943 \
  -p 8443:443 \
  -p 1194:1194/udp \
  -v ~/docker/openvpn-as:/openvpn \
  openvpn/openvpn-as

Đọc mật khẩu tạm thời do container sinh ra:

1
docker logs openvpn-as | grep 'Auto-generated pass'

Sao chép mật khẩu ở dòng Auto-generated pass = vào clipboard cục bộ. Không ghi mật khẩu thật vào Git hoặc gửi qua chat.

Đăng nhập và đổi mật khẩu

  1. Mở https://DNSorIP:943/admin. Chứng chỉ ban đầu có thể là self-signed.
  2. Đăng nhập bằng user openvpn và mật khẩu tạm thời trong log.
  3. Bấm Agree để chấp nhận EULA.
  4. Chọn User Management > User Permissions.
  5. Bấm biểu tượng sửa cạnh user openvpn.
  6. Nhập mật khẩu mới vào trường Password, bấm Save Settings.
  7. Bấm Logout, sau đó đăng nhập lại bằng mật khẩu mới.
  8. Kiểm tra container: docker psdocker logs --tail=50 openvpn-as.

Các cổng là 943:943 cho web, 8443:443 cho HTTPS và 1194:1194/udp cho VPN. Chỉ mở chúng trên firewall/NAT khi thật sự cần.

Nguồn và video


0 Bình luận

Góp Ý / Bình Luận / Đánh giá