It's an old Synology DS412+ NAS that I have used for a long time that has this old OpenVPN image. I have no hope of getting Synology to build a newer version for this old HW.
As mentioned, the reason for changing the settings was that I lost the ability to add more clients in the CA so I had to setup a new PKI, and I had a working setup before.
Anyhow, after re-doing a lot of the steps, I got it working again.
The final server config looks like this:
# <XXXXXXXX LAN> specific config
server 10.8.0.0 255.255.255.0
push "route 10.8.0.0 255.255.255.0"
push "route 192.168.xxx.0 255.255.255.0"
# The backup task will include this location
dh /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/dh4096.pem
ca /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/XXXXXXXX_CA.crt
cert /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/Server.crt
key /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/Server.key
tls-auth /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/ta.key 0
### Generic config below
management 127.0.0.1 1195
topology subnet
push "sndbuf 0"
push "rcvbuf 0"
sndbuf 0
rcvbuf 0
# Use routing instead of bridging
dev tun
proto udp
port 1194
max-clients 5
fast-io
comp-lzo no
cipher AES-256-CBC
# option "data-ciphers" not supported by OpenVPN 2.3.11 running on Synology DS412+
# data-ciphers AES-256-CBC
prng SHA256 32
auth SHA256
tls-version-min 1.2 or-highest
remote-cert-tls client
persist-tun
persist-key
verb 3
# Don't forget logrotate script
log-append /var/log/openvpn.log
keepalive 10 60
reneg-sec 0
plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
username-as-common-name
duplicate-cn
status /tmp/ovpn_status_2_result 30
status-version 2
And the final client config looks like this:
client
dev tun
proto udp
remote <my-host-ip> 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
comp-lzo no
auth-user-pass
key-direction 1
cipher AES-256-CBC
data-ciphers AES-256-CBC
# This is for using PKCS12 certs imported into Windows credential storage. Unique for each client cert.
cryptoapicert "THUMB:XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX"
# Don't know why this route is not pushed by server... - Added to get access to local LAN
route 192.168.xxx.0 255.255.255.0
auth SHA256
<ca>
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
</ca>
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
-----END OpenVPN Static key V1-----
</tls-auth>
As said, everything works now but I don't understand why I can't get the LAN IP range pushed to the client so it shows up in the routing table. I have to add it explicitely in the client config which I don't like. I want my client configs to be agnostic about the LAN config and get the correct routing table upon connection. I consider it good enough for now, though.