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.
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.
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg-agent -ycurl -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 -ysudo systemctl enable docker && sudo systemctl start dockersudo usermod -aG docker $USERsu - $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.
mkdir ~/docker/openvpn-as -pdocker 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:
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
- Mở
https://DNSorIP:943/admin. Chứng chỉ ban đầu có thể là self-signed. - Đăng nhập bằng user
openvpnvà mật khẩu tạm thời trong log. - Bấm Agree để chấp nhận EULA.
- Chọn User Management > User Permissions.
- Bấm biểu tượng sửa cạnh user
openvpn. - Nhập mật khẩu mới vào trường Password, bấm Save Settings.
- Bấm Logout, sau đó đăng nhập lại bằng mật khẩu mới.
- Kiểm tra container:
docker psvàdocker 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
- Tutorial gốc: i12bretro 0946
- Video gốc: Run OpenVPN Access Server in Docker
Bình Luận & Thảo Luận
Góp ý, hỏi đáp và chia sẻ suy nghĩ của bạn