66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
# OpenVPN road-warrior endpoint — RackNerd hub
|
|
# Auth chain: AD user/pass -> PAM -> RADIUS
|
|
# -> Duo Auth Proxy (127.0.0.1:1812) -> LDAPS to the DCs.
|
|
# No individual client certs: identity is LDAP + Duo only. tls-crypt
|
|
# (shared key in the profile) still gates who can attempt a handshake.
|
|
|
|
port 1194
|
|
proto udp4
|
|
dev tun0
|
|
topology subnet
|
|
|
|
server 172.31.8.0 255.255.255.0
|
|
ifconfig-pool-persist /var/lib/openvpn/ipp.txt
|
|
|
|
# Split tunnel: only the AD sites + transfer net ride the VPN.
|
|
push "route 192.168.20.0 255.255.255.0"
|
|
push "route 192.168.7.0 255.255.255.0"
|
|
push "route 172.31.255.0 255.255.255.0"
|
|
|
|
# All client DNS goes to Technitium on this box (block-outside-dns stops
|
|
# Windows from leaking AD lookups to the local LAN resolver).
|
|
push "dhcp-option DNS 172.31.8.1"
|
|
push "dhcp-option DOMAIN ad.atlashorizon.net"
|
|
push "dhcp-option DOMAIN-SEARCH ad.atlashorizon.net"
|
|
push "dhcp-option DOMAIN-SEARCH ad.calliecorner.net"
|
|
push "dhcp-option DOMAIN-SEARCH ad.oswaldtheotter.net"
|
|
push "dhcp-option DOMAIN-SEARCH ad.trochalakis.net"
|
|
push "block-outside-dns"
|
|
|
|
# PKI — server certificate only (offline CA, see pki/README.md);
|
|
# clients present no certificate.
|
|
ca /etc/openvpn/pki/ca.crt
|
|
cert /etc/openvpn/pki/server.crt
|
|
key /etc/openvpn/pki/server.key
|
|
dh none
|
|
tls-crypt /etc/openvpn/pki/ta.key
|
|
|
|
tls-version-min 1.2
|
|
data-ciphers AES-256-GCM:CHACHA20-POLY1305
|
|
auth SHA256
|
|
|
|
# User auth via Duo (password only = push; "password,123456" = passcode)
|
|
plugin /usr/lib/openvpn/openvpn-plugin-auth-pam.so openvpn
|
|
verify-client-cert none
|
|
username-as-common-name
|
|
hand-window 120 # allow time for the Duo push round-trip
|
|
reneg-sec 0 # no mid-session TLS renegotiation (would re-prompt Duo)
|
|
auth-gen-token 43200 # reconnects within 12h reuse a token instead of a new push
|
|
|
|
keepalive 10 60
|
|
explicit-exit-notify 1
|
|
|
|
# wg0 MTU is 1420; keep the client tunnel small enough that client->site
|
|
# packets never fragment inside the WireGuard leg.
|
|
tun-mtu 1400
|
|
mssfix 1360
|
|
|
|
user nobody
|
|
group nogroup
|
|
persist-key
|
|
persist-tun
|
|
|
|
status /var/lib/openvpn/status.log 30
|
|
management 127.0.0.1 7505
|
|
verb 3
|