這是本文件的舊版!
PVE 內使用 CT Template 安裝 OpenVPN Server
- 採用 PVE 可下載的 CT Template - debian-10-turnkey-openvpn_16.1-1_amd64.tar.gz 來建立
安裝程序
- 建立完成後, 查看 /var/log/syslog 會出現以下錯誤訊息
[email protected]: Failed at step NAMESPACE spawning /usr/sbin/openvpn: Permission denied
- 如果 /var/log/syslog 出現以下的錯誤訊息
ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2
就表示建立 CT 時, 沒有將 Unprivileged container 打勾取消
自訂 Open VPN Server
- 預設 UDP Listen Port : 1194 想改成 TCP Listen Port : 10443
- 修改 Push Route 為 10.20.0.0/24
- 修改 /etc/openvpn/server.conf
port 10443 proto tcp dev tun : : # push routes to clients to allow them to reach private subnets push "route 10.20.0.0 255.255.255.0"
- 重新啟動 openvpn server
service openvpn restart
- 修改 /usr/local/bin/openvpn-addclient 產生設定檔的預設值
: : #REMOTE_PORT='1194' REMOTE_PORT='10443' : : remote $SERVER_ADDR $REMOTE_PORT ;proto udp proto tcp remote-cert-tls server :
建立與取消 VPN 帳號
- 透過 ssh 連入 VPN Server 執行以下的命令
- 建立帳號 Exp. jerry [email protected]
root@ct-openvpn ~# openvpn-addclient jerry [email protected]
- 建立帳號設定檔的下載連結(下載後獲一段時間連結就會失效), Exp. jerry
/var/www/openvpn/bin/addprofile jerry
會回傳類似以下的網址 URL: https://vpn.ichiayi.org/profiles/e092f97123456789067ff594c9f8dc0305d81b71/
- 強制取消設定檔的下載連結
/etc/cron.hourly/openvpn-profiles-delexpired
這樣上面產生的設定檔下載網址就立即失效
- 刪除使用者帳號(廢除使用者憑證) Exp. jerry
openvpn-revoke jerry
查詢管理性資訊
- 查看登入登出紀錄
cat /var/log/syslog | grep 'VERIFY OK: depth=0, CN=\| received, client-instance restarting'
- 目前可用帳號
cat /etc/openvpn/easy-rsa/keys/index.txt | grep 'V'
- 已廢止的帳號
cat /etc/openvpn/easy-rsa/keys/index.txt | grep 'R'
- 如果想讓 OpenVPN 的 Listen Port 改為 443, 因為會與提供下載憑證的 lighttpd 衝突, 所以需要
- 修改 /etc/lighttpd/lighttpd.conf 的設定 Exp. 改成 20443
vi /etc/lighttpd/lighttpd.conf
: $SERVER["socket"] == ":80" { $HTTP["host"] =~ "(.*)" { url.redirect = ( "^/(.*)" => "https://%1/$1" ) } } $SERVER["socket"] == ":20443" { ssl.engine = "enable" # Note using shared hardened SSL settings include "ssl-params.conf" :
systemctl restart lighttpd.service
- 修改 /var/www/openvpn/bin/addprofile 的 SERVER_ADDR 設定 Exp. 改成 172.16.0.246:20443
vi /var/www/openvpn/bin/addprofile
: #SERVER_ADDR=$(grep remote $OVPN_PATH | awk '{print $2;exit}') SERVER_ADDR="172.16.0.246:20443" :