Skip to content

OpenVPN server (Docker)

Matvey Gladkikh edited this page Feb 3, 2022 · 2 revisions

# Please use pritunl: https://pritunl.com it is the best OpenVPN solution awailable!:

CLIENT: openvpn in terminal:

apt-get install openvpn
mkdir -p /dev/net
mknod /dev/net/tun c 10 200

cat >> /etc/rc.local <<EOF
/usr/sbin/openvpn --config /etc/openvpn/client/domain_migrate-user_dev-db.ovpn --daemon
EOF

Server:

#1 определить папку и создать первичные настройки сервера:

echo 'export OVPN_DATA="/data/openvpn"' >> ~/.bashrc
export OVPN_DATA="/data/openvpn"
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://vpn-dev.domain.tech -2 -C AES-256-CBC

#2 добавить сети и маршруты

cat > /data/openvpn/ovpn_env.sh <<EOF 
declare -x OVPN_AUTH=
declare -x OVPN_CIPHER=AES-256-CBC
declare -x OVPN_CLIENT_TO_CLIENT=
declare -x OVPN_CN=vpn-dev.domain.tech
declare -x OVPN_COMP_LZO=0
declare -x OVPN_DEFROUTE=1
declare -x OVPN_DEVICE=tun
declare -x OVPN_DEVICEN=0
declare -x OVPN_DISABLE_PUSH_BLOCK_DNS=0
declare -x OVPN_DNS=1
declare -x OVPN_DNS_SERVERS=([0]="8.8.8.8" [1]="8.8.4.4")
declare -x OVPN_ENV=/etc/openvpn/ovpn_env.sh
declare -x OVPN_EXTRA_CLIENT_CONFIG=()
declare -x OVPN_EXTRA_SERVER_CONFIG=()
declare -x OVPN_FRAGMENT=
declare -x OVPN_KEEPALIVE='10 60'
declare -x OVPN_MTU=
declare -x OVPN_NAT=0
declare -x OVPN_OTP_AUTH=1
declare -x OVPN_PORT=1194
declare -x OVPN_PROTO=udp
declare -x OVPN_PUSH=([0]="route 10.56.64.0 255.255.224.0")
declare -x OVPN_ROUTES=([0]="10.56.80.0/21")
declare -x OVPN_SERVER=10.56.80.0/21
declare -x OVPN_SERVER_URL=udp://vpn-dev.domain.tech
declare -x OVPN_TLS_CIPHER=
EOF
# в файле /data/openvpn/ovpn_env.sh
# declare -x OVPN_PUSH=([0]="route 10.56.64.0 255.255.224.0") (добавить маршрут для пользователей в нашу сеть)
# declare -x OVPN_ROUTES=([0]="10.56.80.0/21") (анонсировать что пользователи находятся за опевпн в этой подсети)
# declare -x OVPN_SERVER=10.56.80.0/21 (подсеть пользователей)

#3 перегенерить конфиг

docker run  -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig

#4 инициироать сертификаты с паролем

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki

#5 создать пользователя

docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full matvey nopass

#6 показать qrcode одноразового пароля для authy

docker run -v $OVPN_DATA:/etc/openvpn --rm -it kylemanna/openvpn ovpn_otp_user matvey

#7 запустить сервер на порту UDP и TCP:

docker run  --restart unless-stopped -v $OVPN_DATA:/etc/openvpn -d -p 1194:1194/udp -p 1194:1194/tcp --cap-add=NET_ADMIN kylemanna/openvpn

#8 скачать конфиг для пользователя

docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient CLIENTNAME > CLIENTNAME.ovpn
Clone this wiki locally