Migrated VPN Service Broken with Catalina

My Mac mini has been working just fine with macOS Mojave as a VPN server following the migration method described in https://developer.apple.com/support/downloads/macOS-Server-Service-Migration-Guide.pdf , but after upgrading to macOS Catalina there is trouble:


The VPN clients connect just fine on the internal network, but not on an external network; which makes the VPN server a bit pointless! I can confirm that all was working well with the server running macOS Mojave, and my iOS 13 and iPadOS 13 clients have been connecting just fine; it is the upgrade to macOS Catalina on the server that has caused this problem.


Here are the log entries for a failed connection:





Posted on Oct 11, 2019 9:42 AM

Reply
Question marked as Top-ranking reply

Posted on Nov 15, 2019 1:54 AM

I have tried VPN Enabler mention by lcrooks earlier and have managed to get the connection working back to my Catalina OS Mac Mini. I have done this locally from another desktop and remotely from my iphone. The later needed the OpenVPN app installed.

I also needed to edit the config file created by VPN Enabler as it didn't want to work by default. This was a bit of trial and error really as I am certainly no expert on this, but noticed when using the client part of VPN Enabler that the config file didn't seem to reference my server url but the port number instead. I simply replaced the port number with my url and it worked. The lines I changed are below


<key>RemoteAddress</key>

<string>xxx.ddns.net</string> This simply contained "REMOTE"


<key>remote</key>

<string>xxx.ddns.net</string> Note: this is where the port number 1194 was


Similar questions

120 replies
Question marked as Top-ranking reply

Nov 15, 2019 1:54 AM in response to TrainsAndWellbeing

I have tried VPN Enabler mention by lcrooks earlier and have managed to get the connection working back to my Catalina OS Mac Mini. I have done this locally from another desktop and remotely from my iphone. The later needed the OpenVPN app installed.

I also needed to edit the config file created by VPN Enabler as it didn't want to work by default. This was a bit of trial and error really as I am certainly no expert on this, but noticed when using the client part of VPN Enabler that the config file didn't seem to reference my server url but the port number instead. I simply replaced the port number with my url and it worked. The lines I changed are below


<key>RemoteAddress</key>

<string>xxx.ddns.net</string> This simply contained "REMOTE"


<key>remote</key>

<string>xxx.ddns.net</string> Note: this is where the port number 1194 was


Apr 14, 2020 12:15 PM in response to ElKoeppe10

I'm running through these myself now, but thought I'd post for visibility.


  1. Obtain `vpnd` binary from Mojave.
  2. If you want to overwrite the bad vpnd binary in `/usr/sbin`. Note, future OS updates may result in overwriting this file.
    1. You can't just copy to `/usr/sbin` due to security enhacements (e.g. rootless) introduced in El Capitan (I think).
    2. To disable this security feature you have to reboot your computer and hold `CMD+R` at start to boot into OS X Recovery Mode.
    3. Then OS X Utilities => Terminal => `csrutil disable; reboot`.
    4. Once you've reboot, mv the `vpnd` binary to `/usr/sbin`, `sudo mv vpnd /usr/sbin`.
    5. Note, you'll want to repeat this process to reenable later using `csrutil enable; reboot`.
  3. If you don't want to mess with the OS version of `vpnd`, simply copy the binary into somewhere like `/usr/local/bin`.
    1. If you went this route, update your vpnd plist file to point to the new location.
    2. `sudo launchctl -w unload /Library/LaunchDaemons/vpnd.plist`.
    3. `sudo vim /Library/LaunchDaemons/vpnd.plist`.

vpnd.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" “http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
     <key>Label</key>
     <string>vpn.ppp.l2tp</string>
     <key>KeepAlive</key>
     <true/>
     <key>Program</key>
     <string>/usr/sbin/vpnd</string> <!-- Update Here -->
     <key>ProgramArguments</key>
     <array>
       <string>vpnd</string>
       <string>-x</string>
       <string>-i</string>
       <string>com.apple.ppp.l2tp</string>
     </array>
  </dict>
</plist>


4. `sudo launchctl -w load /Library/LaunchDaemons/vpnd.plist`.

Nov 30, 2019 10:14 AM in response to TrainsAndWellbeing

iVPN has also officially stated that their software is not compatible with Catalina due to vpnd not working. There are a number of blogs/forums complaining about this horrendous issue. Honestly, I don't think Apple will fix this problem in Catalina or future OSX releases. Incredibly frustrating. Bernard Tao's VPN Enabler / OpenVPN workaround may be the only solution.


https://macserve.org.uk/ivpn/help.php

Jan 16, 2020 8:43 AM in response to essandess

Bernard Tao's VPNEnabler tool for Catalina makes use of OpenVPN. He has a free trial download.


Although other options do exist, inclusive of purchasing a VPN-enabled router, it is just so incredibly inconvenient and frustrating that Apple has taken an existing tool that has worked well for years and suddenly disabled functionality for no apparent reason (disrupting the workflow for so many of us). I think many of us are still hopeful that Apple will resolve this problem. I hope everyone on this chain has submitted to Apple's Feedback Assistant for Catalina.

Jan 16, 2020 5:30 AM in response to TrainsAndWellbeing

FWIW, certificate-based OpenVPN is more secure, flexible, and reliable than macOS’s L2TP/CHAP/PSK-based VPN.


It’s worthwhile having a couple different options available in case the external network has various tcp/upd blocks.


It’s straightforward to stand up an OpenVPN Server on macOS along with iOS clients that aren’t affected by any design decisions or mistakes that affect vpnd.


See https://github.com/essandess/macos-openvpn-server.

Apr 16, 2020 12:17 PM in response to lcrooks

I'm not convinced that the problem would be at the client/user end, since in my case, only the server changed, not the clients (iPhone and MacBook Pro).


I copied all my server's information into my router's VPN server set-up, turned off port forwarding, and voilà! It worked instantly with both clients, and with no changes to the client/user setup.


Just saying…

Jan 15, 2020 4:34 AM in response to TrainsAndWellbeing

I recently migrated to 10.15 and my MacPorts-based macOS vpnd server is running just fine.


The basic setup is pretty straightforward and shouldn’t be too hard to troubleshoot.


The MacPorts install is:


sudo port install macos-vpn-server

sudo port load macos-vpn-server


Also, see the migration notes in the repo https://github.com/essandess/macOS-Open-Source-Server for details, or see the MacPorts Port file at https://github.com/macports/macports-ports/blob/master/net/macos-vpn-server/Portfile.

Jan 15, 2020 2:35 PM in response to essandess

Here's what I see:


  • Catalina vpnd works on the LAN, as noted by the OP
  • On the LAN, a successful connection in /var/log/ppp/vpnd.log looks like:

L2TP incoming call in progress from '10.0.1.14'...

L2TP received SCCRQ

L2TP sent SCCRP

L2TP received SCCCN

L2TP received ICRQ

L2TP sent ICRP

L2TP received ICCN

L2TP connection established.

  • Catalina vpnd doesn't connect from many external networks, as noted by the OP
  • An unsuccessful connection in /var/log/ppp/vpnd.log looks like:

L2TP incoming call in progress from '199.199.199.199'...

L2TP received SCCRQ

L2TP sent SCCRP

Incoming call... Address given to client = 10.0.1.50

  • Note that "L2TP received SCCCN" never happens
  • Bizarrely, my ISP is Comcast, and external connections from Xfinity WiFi hotspots work , and the logs look the same as on the LAN
  • I tried using the Mojave vpnd binary, with the same results, so it's a system problem with Catalina, not the binary


I don't know what the issue is, but it's not a simple network block, and it's not the Catalina vpnd binary.

Feb 11, 2020 1:06 PM in response to TrainsAndWellbeing

I have the same issues on MacMini/Catalina reported under:

FB 15957415


I was able to move to an older MacMini running 10.13.6 (HighSierra).


Here some observations during testing.


It seems from the WAN connection on the server.log that the IPSEC connection is established (6 times) but the L2TP dialog is not successful.


Copying the vpnd configuration from a MacMini 10.15.2 to the MacMini running 10.13.6 gives a successful connection on both LAN and WAN.


As a site note I use a freebsd firewall using pf between the LAN and a ARRIS TG1683G Router/Modem by Xfinity(Comcast).

When I connect the client to the DMZ between the freebsd firewall and the Xfinity router and use the DMZ address as the VPN Server address I get a successful connection to the the MacMini running Catalina.


This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Migrated VPN Service Broken with Catalina

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.