UI Port 8080

login admin 

Password UI_passw0rd

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh

systemctl enable --now docker.socket
systemctl enable --now docker

cd ~
git clone https://github.com/d3vilh/openvpn-ui.git
cd ~/openvpn-ui/

#prepare folders
mkdir -p /opt/openvpn/
mkdir -p /opt/openvpn/pki
mkdir -p /opt/openvpn/db
mkdir -p /opt/openvpn/clients
mkdir -p /opt/openvpn/log
mkdir -p /opt/openvpn/config/
touch /opt/openvpn/fw-rules.sh

# set Certificates fields
echo 'set_var EASYRSA_DN           "org"' >/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_COUNTRY  "UA"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_PROVINCE "KV"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_CITY     "Kyiv"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_ORG      "Company"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_EMAIL    "tech@example.com"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_OU       "Tech"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_REQ_CN       "vpn.example.com"' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_KEY_SIZE     2048' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_CA_EXPIRE    3650' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_CERT_EXPIRE  825' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_CERT_RENEW   30' >>/opt/openvpn/config/easy-rsa.vars
echo 'set_var EASYRSA_CRL_DAYS     180' >>/opt/openvpn/config/easy-rsa.vars
ln -s  /opt/openvpn/config/easy-rsa.vars /opt/openvpn/pki/vars

# customize paths
yes| cp --force docs/docker-compose.yml ./docker-compose.yml
sed -i '/version/d' docker-compose.yml
sed -i 's/[.]\/pki/\/opt\/bis\/openvpn\/pki/g' docker-compose.yml
sed -i 's/[.]\/clients/\/opt\/bis\/openvpn\/clients/g' docker-compose.yml
sed -i 's/[.]\/config/\/opt\/bis\/openvpn\/config/g' docker-compose.yml
sed -i 's/[.]\/staticclients/\/opt\/bis\/openvpn\/staticclients/g' docker-compose.yml
sed -i 's/[.]\/log/\/opt\/bis\/openvpn\/log/g' docker-compose.yml
sed -i 's/[.]\/fw-rules.sh/\/opt\/bis\/openvpn\/fw-rules.sh/g' docker-compose.yml
sed -i 's/[.]\/db/\/opt\/bis\/openvpn\/db/g' docker-compose.yml
sed -i 's/[.]\//\/opt\/bis\/openvpn/g' docker-compose.yml
sed -i '/volumes:/a\           - \/opt\/bis\/openvpn\/server.conf:\/etc\/openvpn\/server.conf' docker-compose.yml

# Set default UI admin password
sed -i 's/gagaZush/UI_passw0rd/g' docker-compose.yml

# OpenVpn server config
cat <<EOF > /opt/openvpn/server.conf
management 0.0.0.0 2080
dev tun
port 1194
proto udp
topology subnet
keepalive 10 120
max-clients 100
persist-key
persist-tun
explicit-exit-notify 1
user nobody
group nogroup
client-config-dir /etc/openvpn/staticclients
ifconfig-pool-persist pki/ipp.txt
ca pki/ca.crt
cert pki/issued/server.crt
key pki/private/server.key
crl-verify pki/crl.pem
dh pki/dh.pem
tls-crypt pki/ta.key
tls-version-min 1.2
remote-cert-tls client
cipher AES-256-GCM

data-ciphers AES-256-GCM:AES-192-GCM:AES-128-GCM
auth SHA512

server 10.0.70.0 255.255.255.0           # Trusted VPN subnet
route 10.0.71.0 255.255.255.0            # Route to Guest VPN subnet
push "route 10.0.60.0 255.255.255.0"     # Route to Home VPN subnet
push "dhcp-option DNS 8.8.8.8"             # DNS1 server for VPN clients
push "dhcp-option DNS 1.0.0.1"             # DNS2 server for VPN clients
push "redirect-gateway def1 bypass-dhcp"    # Redirect gateway for VPN clients
log /var/log/openvpn/openvpn.log
verb 3
status /var/log/openvpn/openvpn-status.log
status-version 2
EOF

# visual check
cat docker-compose.yml
diff docker-compose.yml docs/docker-compose.yml

# execute
docker compose up -d


  • No labels