** Description changed: [Impact] - * non-default but still common openvpn setups use callout scripts with - sudo (if the openvpn user was set up to work with sudo). That breaks in - >=Bionic since CAP_AUDIT_WRITE was dropped which makes pam/sudo denying - the call. + * non-default but still common openvpn setups use callout scripts with + sudo (if the openvpn user was set up to work with sudo). That breaks in + >=Bionic since CAP_AUDIT_WRITE was dropped which makes pam/sudo denying + the call. - * We brought the change upstream and want to backport into Cosmic/Bionic - to avoid Xenial upgrades to hit this. + * We brought the change upstream and want to backport into Cosmic/Bionic + to avoid Xenial upgrades to hit this. - * Interesting is that the upstream .deb is not affected by still having - Xenial rules: - =>https://github.com/OpenVPN/sbuild_wrapper/tree/master/packaging/xenial/debian + * Interesting is that the upstream .deb is not affected by still having + Xenial rules: + =>https://github.com/OpenVPN/sbuild_wrapper/tree/master/packaging/xenial/debian [Test Case] - * details in https://www.techgrube.de/tutorials/openvpn-server-mit-ipv4- - und-ipv6 which the reporter and I followed (warning: non commands are - german) + * details in https://www.techgrube.de/tutorials/openvpn-server-mit-ipv4- + und-ipv6 which the reporter and I followed (warning: non commands are + german) - * there is no need to do any of the IPV6 stuff in the guide nor the - iptables actionsa, a simplified version is in comment #25 + * there is no need to do any of the IPV6 stuff in the guide nor the + iptables actions - TL;DR would be: - * apt install openvpn (on client and server) - * add "openvpn" user and grant him sudo permission for your test script - * add server/client config as outlined in comment #25 - the important bit is to have a sudo call to a helper like: - learn-address "/usr/bin/sudo -u root /etc/openvpn/scripts/test.sh" - (see the example in comment #25 for a copy&paste config) - * Start the server service and run journalctl -f - * Let the client connect (you will see the denies on the server) + TL;DR would be: + * apt install openvpn (on client and server) + $ sudo apt install openvpn easy-rsa + Use easy-rsa to create 1 server and 1 client certificate + See the link above for commands to do so if you are unfamiliar + * add "openvpn" user and grant him sudo permission for your test script + $ addgroup --system --no-create-home --disabled-login --group openvpn + $ adduser --system --no-create-home --disabled-login --ingroup openvpn openvpn + * add server/client config as outlined in comment #25 + the important bit is to have a sudo call to a helper like: + learn-address "/usr/bin/sudo -u root /etc/openvpn/scripts/test.sh" + client.conf + client + dev tun + proto udp + remote 192.168.122.29 1194 + resolv-retry infinite + nobind + persist-key + persist-tun + ca /etc/openvpn/easy-rsa/pki/ca.crt + cert /etc/openvpn/easy-rsa/pki/issued/guest1.crt + key /etc/openvpn/easy-rsa/pki/private/guest1.key + remote-cert-tls server + cipher AES-256-CBC + tls-version-min 1.2 + tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 + auth SHA512 + comp-lzo + verb 6 + explicit-exit-notify + server.conf + port 1194 + proto udp + dev tun + ca /etc/openvpn/easy-rsa/pki/ca.crt + cert /etc/openvpn/easy-rsa/pki/issued/server.crt + key /etc/openvpn/easy-rsa/pki/private/server.key + dh /etc/openvpn/easy-rsa/pki/dh.pem + topology subnet + server 10.8.0.0 255.255.255.0 + ifconfig-pool-persist ipp.txt + script-security 2 + push "redirect-gateway def1" + push "dhcp-option DNS 8.8.8.8" + keepalive 10 120 + tls-version-min 1.2 + tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 + auth SHA512 + cipher AES-256-CBC + comp-lzo + persist-key + persist-tun + status openvpn-status.log + verb 6 + user openvpn + group openvpn - [Regression Potential] + * Create the test script + $ sudo mkdir -p /etc/openvpn/scripts/ + $ sudo echo "id" >> /etc/openvpn/scripts/test.sh + $ sudo chmod +x /etc/openvpn/scripts/test.sh + * Start the server service and run journalctl -f + * Let the client connect (you will see the denies on the server) - * It adds one allowed capability (a rather safe one btw) to the service - of openvpn. There should be no regression risk breaking functional - setups. - If anything security concerns, but since it was this way in Xenial even - that should not apply + [Regression Potential] + + * It adds one allowed capability (a rather safe one btw) to the service + of openvpn. There should be no regression risk breaking functional + setups. + If anything security concerns, but since it was this way in Xenial even + that should not apply [Other Info] - - * This was in Xenial, picked by upstream for their own .deb package but - not integrated in their actual repository. Debian by aligning with - upstream dropped it and we followed. This time we made sure it gets - upstream and therefore hopefully should not reoccur again + + * This was in Xenial, picked by upstream for their own .deb package but + not integrated in their actual repository. Debian by aligning with + upstream dropped it and we followed. This time we made sure it gets + upstream and therefore hopefully should not reoccur again --- I updated my Server from xenial to bionic today. on xenial I was using the openvpn repo from the openvpn developers (https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos) now that bionic ships a more recent version I removed the ppa and switched to the distro version (2.4.4) my openvpn server assings a real ipv6 address and does nat for ipv4 forevery client. Also i push a route so a /64 ipv6 net and one ipv4 address is reachable through the tunnel. (I have firewalled a server so it is only reachable through the tunnels ips) With openvpn 2.4.4 from bionic repo this does not work anymore, aka the server is not reachable anymore. I quicky reactivated the xenial repo from https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos and upgraded the server again (to 2.4.6) after a restart I was able to reach my server again. so most likely there is a bug in bionics 2.4.4 version of openvpn client config: client dev tun proto udp remote <ipv4-address> 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert martin-pc.crt key martin-pc.key remote-cert-tls server tls-crypt ta.key cipher AES-256-GCM tls-version-min 1.2 tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 auth SHA512 comp-lzo explicit-exit-notify pull-filter ignore "route" pull-filter ignore "dhcp" pull-filter ignore "redirect" route-ipv6 <ipv6-net i want to reach>/64 <ipv6 ip of server> 1 route <server i want to reach ipv4> 255.255.255.255 10.8.0.1 1 server config: port 1194 proto udp dev tun ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key dh /etc/openvpn/easy-rsa/keys/dh4096.pem topology subnet server 10.8.0.0 255.255.255.0 server-ipv6 <ipv6 net usable for clients>/112 ifconfig-pool-persist ipp.txt push "route-ipv6 2000::/3 <ipv6 server ip> 1" script-security 2 learn-address "/usr/bin/sudo -u root /etc/openvpn/scripts/ndp-proxy-setup.sh" push "redirect-gateway def1" push "redirect-gateway ipv6" push "dhcp-option DNS 1.1.1.1" keepalive 10 120 tls-crypt /etc/openvpn/easy-rsa/keys/ta.key tls-version-min 1.2 tls-cipher TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 auth SHA512 cipher AES-256-GCM #compress lz4 comp-lzo persist-key persist-tun status openvpn-status.log #verb 6 user openvpn group openvpn
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1787208 Title: Openvpn routing issue To manage notifications about this bug go to: https://bugs.launchpad.net/openvpn/+bug/1787208/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs