Simultaneous OpenVPN Server and Client using Policy Routing

Hello everybody,

I have been working with OpenWrt for about 1 month trying to get a simultaneous OpenVPN Server and Client working with VPN Policy Routing.

It is fully functional using static routing as per my post of April 15, 2019 and I have resolved the issue with the Certificate Error by setting in /etc/config/uhttpd 'option redirect_https 0'

@stangri documentation and instructions and code are superb but I must of missed something simple.

The server without the client running works 100% without any errors in the log file.
Please note that the server is setup to use 2 tunnels even though it has 8 possible clients. This is the default setup as per OpenVPN Basic and OpenVPN Extra documentation.

Procedure used to create Server/Client
# Configure firewall
uci set firewall.@zone[0].device="tun0"
uci -q delete firewall.vpn
uci set firewall.vpn="rule"
uci set firewall.vpn.name="Allow-OpenVPN"
uci set firewall.vpn.src="wan"
uci set firewall.vpn.dest_port="1194"
uci set firewall.vpn.proto="udp"
uci set firewall.vpn.target="ACCEPT"
uci commit firewall
service firewall restart

# Install packages
opkg update
opkg install openvpn-easy-rsa
 
# Configuration parameters
export EASYRSA_PKI="/etc/easy-rsa/pki"
export EASYRSA_REQ_CN="vpnca"
 
# Remove and re-initialize the PKI directory
easyrsa --batch init-pki
 
# Generate DH parameters
# May take a while to complete (~25m on WRT3200ACM)
easyrsa --batch gen-dh
 
# Create a new CA
easyrsa --batch build-ca nopass
 
# Generate a keypair and sign locally for vpnserver
easyrsa --batch build-server-full vpnserver0 nopass
 
# Generate a keypair and sign locally for vpnclient
easyrsa --batch build-client-full vpnclient0 nopass
easyrsa --batch build-client-full vpnclient1 nopass
easyrsa --batch build-client-full vpnclient2 nopass
easyrsa --batch build-client-full vpnclient3 nopass
easyrsa --batch build-client-full vpnclient4 nopass
easyrsa --batch build-client-full vpnclient5 nopass
easyrsa --batch build-client-full vpnclient6 nopass
easyrsa --batch build-client-full vpnclient7 nopass
--------------------------------------------------------------------------------

# Install packages
opkg update
opkg install openvpn-openssl
 
# Generate TLS PSK
EASYRSA_PKI="/etc/easy-rsa/pki"
openvpn --genkey --secret "${EASYRSA_PKI}/tc.pem"
 
# Configuration parameters
VPN_DEV="$(uci get firewall.@zone[0].device)"
VPN_POOL="192.168.8.0 255.255.255.0"
VPN_DNS="${VPN_POOL%.* *}.1"
VPN_DOMAIN="$(uci get dhcp.@dnsmasq[0].domain)"
EASYRSA_PKI="/etc/easy-rsa/pki"
DH_KEY="$(cat "${EASYRSA_PKI}/dh.pem")"
TC_KEY="$(sed -e "/^#/d;/^\w/N;s/\n//" "${EASYRSA_PKI}/tc.pem")"
CA_CERT="$(openssl x509 -in "${EASYRSA_PKI}/ca.crt")"
NL=$'\n'
 
# Configure VPN-server
grep -l -r -e "TLS Web Server Authentication" "${EASYRSA_PKI}/issued" \
| sed -e "s/^.*\///;s/\.\w*$//" \
| while read VPN_ID
do
VPN_CONF="/etc/openvpn/${VPN_ID}.conf"
VPN_CERT="$(openssl x509 -in "${EASYRSA_PKI}/issued/${VPN_ID}.crt")"
VPN_KEY="$(cat "${EASYRSA_PKI}/private/${VPN_ID}.key")"
cat << EOF > "${VPN_CONF}"
verb 3
dev ${VPN_DEV}
port 1194
proto udp
server ${VPN_POOL}
topology subnet
client-to-client
keepalive 10 120
persist-tun
persist-key
push "dhcp-option DNS ${VPN_DNS}"
push "dhcp-option DOMAIN ${VPN_DOMAIN}"
push "redirect-gateway def1"
push "persist-tun"
push "persist-key"
<dh>${NL}${DH_KEY}${NL}</dh>
<tls-crypt>${NL}${TC_KEY}${NL}</tls-crypt>
<ca>${NL}${CA_CERT}${NL}</ca>
<cert>${NL}${VPN_CERT}${NL}</cert>
<key>${NL}${VPN_KEY}${NL}</key>
EOF
chmod "u=rw,g=,o=" "${VPN_CONF}"
done
service openvpn restart
--------------------------------------------------------------------------------

# Configuration parameters
VPN_CONF="/etc/openvpn/vpnserver0.conf"
VPN_SERV="cricri.dlinkddns.com"
VPN_PORT="$(sed -n -e "/^port\s/s///p" "${VPN_CONF}")"
VPN_PROTO="$(sed -n -e "/^proto\s/s///p" "${VPN_CONF}")"
VPN_DEV="$(sed -n -e "/^dev\s/s///p" "${VPN_CONF}")"
EASYRSA_PKI="/etc/easy-rsa/pki"
TC_KEY="$(sed -e "/^#/d;/^\w/N;s/\n//" "${EASYRSA_PKI}/tc.pem")"
CA_CERT="$(openssl x509 -in "${EASYRSA_PKI}/ca.crt")"
NL=$'\n'
 
# Generate VPN-client profiles
grep -l -r -e "TLS Web Client Authentication" "${EASYRSA_PKI}/issued" \
| sed -e "s/^.*\///;s/\.\w*$//" \
| while read VPN_ID
do
VPN_CONF="/etc/openvpn/${VPN_ID}.ovpn"
VPN_CERT="$(openssl x509 -in "${EASYRSA_PKI}/issued/${VPN_ID}.crt")"
VPN_KEY="$(cat "${EASYRSA_PKI}/private/${VPN_ID}.key")"
cat << EOF > "${VPN_CONF}"
verb 3
dev ${VPN_DEV%%[0-9]*}
nobind
client
remote ${VPN_SERV} ${VPN_PORT} ${VPN_PROTO}
auth-nocache
remote-cert-tls server
<tls-crypt>${NL}${TC_KEY}${NL}</tls-crypt>
<ca>${NL}${CA_CERT}${NL}</ca>
<cert>${NL}${VPN_CERT}${NL}</cert>
<key>${NL}${VPN_KEY}${NL}</key>
EOF
chmod "u=rw,g=,o=" "${VPN_CONF}"
done
ls /etc/openvpn/*.ovpn
--------------------------------------------------------------------------------

# Configuration parameters
export EASYRSA_PKI="/etc/easy-rsa/pki"
 
# Add one more client
#easyrsa --batch build-client-full vpnclient1 nopass
 
# Add another client encrypting its private key
#easyrsa --batch build-client-full vpnclient2
 
# Revoke vpnclient certificate
#easyrsa --batch revoke vpnclient
 
# Generate a CRL
easyrsa --batch gen-crl
 
# Enable CRL-verification
VPN_CRL="$(cat "${EASYRSA_PKI}/crl.pem")"
NL=$'\n'
sed -i -e "
/^<crl-verify>/,/^<\/crl-verify>/s/^/#/
\$a <crl-verify>\n${VPN_CRL//${NL}/\n}\n</crl-verify>
" /etc/openvpn/vpnserver0.conf
service openvpn restart
--------------------------------------------------------------------------------

# Install imavpn2client.conf
# Copy ArcherC7v5Vpnclient.ovpn to imavpn2client.conf
vi /etc/openvpn/imavpn2client.conf
# type i
# Open ArcherC7v5Vpnclient.ovpn and type CTL-A
# Right click in OpenWrt window
# Press Esc key
# type :wq
--------------------------------------------------------------------------------

# Install packages
opkg update
opkg install luci-app-openvpn
 
# Provide VPN-instance management
ls /etc/openvpn/*.conf \
| while read VPN_CONF
do
VPN_ID="$(basename "${VPN_CONF}" ".conf" | sed -e "s/[^0-9a-zA-Z]/_/g")"
uci -q delete openvpn.${VPN_ID}
uci set openvpn.${VPN_ID}="openvpn"
uci set openvpn.${VPN_ID}.enabled="1"
uci set openvpn.${VPN_ID}.config="${VPN_CONF}"
done
uci commit openvpn
service openvpn restart
--------------------------------------------------------------------------------

## Use CCD on VPN-server for client static IP-address allocation assuming that: 
## 192.168.8.0/24 - VPN-network
## fdf1:7610:d152:3a9c::/64 - VPN6-network
VPN_CCD="/etc/openvpn/ccd"
mkdir -p "${VPN_CCD}"
cat << EOF > "${VPN_CCD}/vpnclient0"
ifconfig-push 192.168.8.2 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::2/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient1"
ifconfig-push 192.168.8.3 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::3/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient2"
ifconfig-push 192.168.8.4 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::4/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient3"
ifconfig-push 192.168.8.5 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::5/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient4"
ifconfig-push 192.168.8.6 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::6/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient5"
ifconfig-push 192.168.8.7 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::7/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient6"
ifconfig-push 192.168.8.8 255.255.255.0ls/
ifconfig-ipv6-push fdf1:7610:d152:3a9c::8/64
EOF
cat << EOF > "${VPN_CCD}/vpnclient7"
ifconfig-push 192.168.8.9 255.255.255.0
ifconfig-ipv6-push fdf1:7610:d152:3a9c::9/64
EOF
cat << EOF >> /etc/openvpn/vpnserver0.conf
client-config-dir ${VPN_CCD}
EOF
service openvpn restart
--------------------------------------------------------------------------------

# To minimize firewall setup consider VPN-network as public and assign VPN-interface to WAN-zone.
# Configure firewall imavpn2client
uci set firewall.@zone[1].device="tun8"
uci commit firewall
service firewall restart
--------------------------------------------------------------------------------
Install the VPN-Policy-Routing
# VPN Policy-Based Routing
opkg update; opkg install ipset resolveip ip-full kmod-ipt-ipset iptables
opkg update; opkg remove dnsmasq; opkg install dnsmasq-full

# Remove Old version and re-run to install newer version
#### Causes Web certificate not trusted error
opkg update
opkg list-installed | grep -q uclient-fetch || opkg install uclient-fetch
opkg list-installed | grep -q libustream || opkg install libustream-mbedtls
echo -e -n 'untrusted comment: LEDE usign key of Stan Grishin\nRWR//HUXxMwMVnx7fESOKO7x8XoW4/dRidJPjt91hAAU2L59mYvHy0Fa\n' > /tmp/stangri-repo.pub && opkg-key add /tmp/stangri-repo.pub
! grep -q 'stangri_repo' /etc/opkg/customfeeds.conf && echo 'src/gz stangri_repo https://raw.githubusercontent.com/stangri/openwrt-repo/master' >> /etc/opkg/customfeeds.conf
opkg update
opkg install vpn-policy-routing luci-app-vpn-policy-routing

#### To fix Certificate Error edit /etc/config/uhttpd
#### Set 'option redirect_https 0' from 'option redirect_https 1'
#### then run 'service uhttpd restart'

# VPN Client & Server Simultaneously
if [ -s /etc/config/vpn-policy-routing ]; then
  uci add_list vpn-policy-routing.config.ignored_interface='vpnserver0'
  uci add vpn-policy-routing policy
  uci set vpn-policy-routing.@policy[-1]=policy
  uci set vpn-policy-routing.@policy[-1].comment='OpenVPN Server'
  uci set vpn-policy-routing.@policy[-1].interface='wan'
  uci set vpn-policy-routing.@policy[-1].local_ports='1194'
  uci commit vpn-policy-routing
fi

# Create another firewall forwarding (in the code below replace the vpnclient with the firewall zone for your VPN client, refer to the tail of /etc/config/firewall):
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='vpnserver0'
#uci set firewall.@forwarding[-1].dest='vpnclient'
uci set firewall.@forwarding[-1].dest='wan'
uci commit firewall

# Restart/reload the service:
service vpn-policy-routing reload
VPR log files requested

/etc/config/vpn-policy-routing

config vpn-policy-routing 'config'
        option verbosity '2'
        option ipv6_enabled '0'
        option ipset_enabled '1'
        option dnsmasq_enabled '0'
        option strict_enforcement '1'
        option boot_timeout '30'
        list ignored_interface 'vpnserver0'
        option enabled '1'

config policy
        option name 'OpenVPN Server'
        option interface 'wan'
        option local_port '1194'
        option chain 'OUTPUT'
        option proto 'udp'

/etc/init.d/vpn-policy-routing status

login as: root
root@192.168.3.1's password:


BusyBox v1.28.4 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 18.06.2, r7676-cddd7b4c77
 -----------------------------------------------------
vpn-policy-routing 0.0.5-0 running on OpenWrt 18.06.2.
============================================================
Dnsmasq version 2.80  Copyright (c) 2000-2018 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC no-ID loop-detect inotify dumpfile
============================================================
Routes/IP Rules
default         192.168.7.5     128.0.0.0       UG    0      0        0 tun8
default         192.168.7.5     0.0.0.0         UG    0      0        0 tun8
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0.2
IPv4 Table 201: default via 192.168.1.1 dev eth0.2
IPv4 Table 201 Rules:
32765:  from all fwmark 0x10000 lookup 201
============================================================
IP Tables PREROUTING
-N VPR_PREROUTING
-A VPR_PREROUTING -m set --match-set wan dst -c 0 0 -j MARK --set-xmark 0x10000/0xff0000
============================================================
IP Tables FORWARD
-N VPR_FORWARD
============================================================
IP Tables INPUT
-N VPR_INPUT
============================================================
IP Tables OUTPUT
-N VPR_OUTPUT
-A VPR_OUTPUT -p udp -m multiport --sports 1194 -m comment --comment OpenVPN_Server -c 30 2532 -j MARK --set-xmark 0x10000/0xff0000
============================================================
Current ipsets
create wan hash:net family inet hashsize 1024 maxelem 65536 comment
============================================================

/etc/init.d/vpn-policy-routing reload

Creating table 'wan/192.168.1.1' [✓]
Routing 'OpenVPN Server' via wan [✓]
vpn-policy-routing 0.0.5-0 started on wan/192.168.1.1 [✓]
vpn-policy-routing 0.0.5-0 monitoring interfaces: wan [✓]
Log file Errors
Sun May 12 18:56:02 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31484 TLS Error: tls-crypt unwrapping failed from [AF_INET]151.82.169.21:31484
Sun May 12 18:56:03 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31484 tls-crypt unwrap error: bad packet ID (may be a replay): [ #1 / time = (1557687157) Sun May 12 18:52:37 2019 ] -- see the man page entry for --no-replay and --replay-window for more info or silence this warning with --mute-replay-warnings
Sun May 12 18:56:03 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31484 tls-crypt unwrap error: packet replay
Sun May 12 18:56:03 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31484 TLS Error: tls-crypt unwrapping failed from [AF_INET]151.82.169.21:31484
Sun May 12 18:56:47 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31482 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sun May 12 18:56:47 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31482 TLS Error: TLS handshake failed
Sun May 12 18:56:47 2019 daemon.notice openvpn(vpnserver0)[1929]: 151.82.169.21:31482 SIGUSR1[soft,tls-error] received, client-instance restarting
Sun May 12 18:56:57 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31484 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sun May 12 18:56:57 2019 daemon.err openvpn(vpnserver0)[1929]: 151.82.169.21:31484 TLS Error: TLS handshake failed
Sun May 12 18:56:57 2019 daemon.notice openvpn(vpnserver0)[1929]: 151.82.169.21:31484 SIGUSR1[soft,tls-error] received, client-instance restarting

If the imavpn2client is disabled then vpnserver0 is accessable by all 8 of vpnclient0 … vpnclient7 from both PC and Android. Perhaps this structure is not compatible with VPN-Policy-Routing?

Any help is much appreciated. Thanks in advance.

uci show firewall

Hello @vgaetera. As requested.

uci show firewall
login as: root
root@192.168.3.1's password:


BusyBox v1.28.4 () built-in shell (ash)

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 OpenWrt 18.06.2, r7676-cddd7b4c77
 -----------------------------------------------------
root@OpenWrt:~# uci show firewall
firewall.@defaults[0]=defaults
firewall.@defaults[0].syn_flood='1'
firewall.@defaults[0].input='ACCEPT'
firewall.@defaults[0].output='ACCEPT'
firewall.@defaults[0].forward='REJECT'
firewall.@zone[0]=zone
firewall.@zone[0].name='lan'
firewall.@zone[0].network='lan'
firewall.@zone[0].input='ACCEPT'
firewall.@zone[0].output='ACCEPT'
firewall.@zone[0].forward='ACCEPT'
firewall.@zone[0].device='tun0'
firewall.@zone[1]=zone
firewall.@zone[1].name='wan'
firewall.@zone[1].network='wan' 'wan6'
firewall.@zone[1].input='REJECT'
firewall.@zone[1].output='ACCEPT'
firewall.@zone[1].forward='REJECT'
firewall.@zone[1].masq='1'
firewall.@zone[1].mtu_fix='1'
firewall.@zone[1].device='tun8'
firewall.@forwarding[0]=forwarding
firewall.@forwarding[0].src='lan'
firewall.@forwarding[0].dest='wan'
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-DHCP-Renew'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='udp'
firewall.@rule[0].dest_port='68'
firewall.@rule[0].target='ACCEPT'
firewall.@rule[0].family='ipv4'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-Ping'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='icmp'
firewall.@rule[1].icmp_type='echo-request'
firewall.@rule[1].family='ipv4'
firewall.@rule[1].target='ACCEPT'
firewall.@rule[2]=rule
firewall.@rule[2].name='Allow-IGMP'
firewall.@rule[2].src='wan'
firewall.@rule[2].proto='igmp'
firewall.@rule[2].family='ipv4'
firewall.@rule[2].target='ACCEPT'
firewall.@rule[3]=rule
firewall.@rule[3].name='Allow-DHCPv6'
firewall.@rule[3].src='wan'
firewall.@rule[3].proto='udp'
firewall.@rule[3].src_ip='fc00::/6'
firewall.@rule[3].dest_ip='fc00::/6'
firewall.@rule[3].dest_port='546'
firewall.@rule[3].family='ipv6'
firewall.@rule[3].target='ACCEPT'
firewall.@rule[4]=rule
firewall.@rule[4].name='Allow-MLD'
firewall.@rule[4].src='wan'
firewall.@rule[4].proto='icmp'
firewall.@rule[4].src_ip='fe80::/10'
firewall.@rule[4].icmp_type='130/0' '131/0' '132/0' '143/0'
firewall.@rule[4].family='ipv6'
firewall.@rule[4].target='ACCEPT'
firewall.@rule[5]=rule
firewall.@rule[5].name='Allow-ICMPv6-Input'
firewall.@rule[5].src='wan'
firewall.@rule[5].proto='icmp'
firewall.@rule[5].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type' 'router-solicitation' 'neighbour-solicitation' 'router-advertisement' 'neighbour-advertisement'
firewall.@rule[5].limit='1000/sec'
firewall.@rule[5].family='ipv6'
firewall.@rule[5].target='ACCEPT'
firewall.@rule[6]=rule
firewall.@rule[6].name='Allow-ICMPv6-Forward'
firewall.@rule[6].src='wan'
firewall.@rule[6].dest='*'
firewall.@rule[6].proto='icmp'
firewall.@rule[6].icmp_type='echo-request' 'echo-reply' 'destination-unreachable' 'packet-too-big' 'time-exceeded' 'bad-header' 'unknown-header-type'
firewall.@rule[6].limit='1000/sec'
firewall.@rule[6].family='ipv6'
firewall.@rule[6].target='ACCEPT'
firewall.@rule[7]=rule
firewall.@rule[7].name='Allow-IPSec-ESP'
firewall.@rule[7].src='wan'
firewall.@rule[7].dest='lan'
firewall.@rule[7].proto='esp'
firewall.@rule[7].target='ACCEPT'
firewall.@rule[8]=rule
firewall.@rule[8].name='Allow-ISAKMP'
firewall.@rule[8].src='wan'
firewall.@rule[8].dest='lan'
firewall.@rule[8].dest_port='500'
firewall.@rule[8].proto='udp'
firewall.@rule[8].target='ACCEPT'
firewall.@include[0]=include
firewall.@include[0].path='/etc/firewall.user'
firewall.vpn=rule
firewall.vpn.name='Allow-OpenVPN'
firewall.vpn.src='wan'
firewall.vpn.dest_port='1194'
firewall.vpn.proto='udp'
firewall.vpn.target='ACCEPT'
firewall.@forwarding[1]=forwarding
firewall.@forwarding[1].src='vpnserver0'
firewall.@forwarding[1].dest='wan'
firewall.@forwarding[2]=forwarding
firewall.@forwarding[2].src='vpnserver0'
firewall.@forwarding[2].dest='wan'
root@OpenWrt:~#

You are using zone vpnserver0, but it is not declared anywhere.

@vgaetera
Thank you for your help and writing the origina! VPN Client & Server document
https://openwrt.org/docs/guide-user/services/vpn/server_client
vpnserver0 is defined in /etc/config/openvpn
I have added the following to /etc/config/firewall

config zone
        option name 'vpnserver0'
        option input 'ACCEPT'
        option forward 'ACCEPT'
        option output 'ACCEPT'
        option device 'tun0'
        option network ' '

and restarted the firewall and VPR. The same error was returned when calling vpnserver0 with the vpnclient7.

Thank you @vgaetera
This is the error in the Log. Have I implemented the zone correctly?

Tue May 14 07:10:43 2019 daemon.err openvpn(vpnserver0)[4188]: 151.38.130.38:41079 TLS Error: tls-crypt unwrapping failed from [AF_INET]151.38.130.38:41079
Tue May 14 07:10:43 2019 daemon.notice openvpn(vpnserver0)[4188]: 151.38.130.38:41080 TLS: Initial packet from [AF_INET]151.38.130.38:41080, sid=625b98bf 67bf5c6b
Tue May 14 07:11:33 2019 daemon.err openvpn(vpnserver0)[4188]: 151.38.130.38:41079 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Tue May 14 07:11:33 2019 daemon.err openvpn(vpnserver0)[4188]: 151.38.130.38:41079 TLS Error: TLS handshake failed
Tue May 14 07:11:33 2019 daemon.notice openvpn(vpnserver0)[4188]: 151.38.130.38:41079 SIGUSR1[soft,tls-error] received, client-instance restarting